这里是相对缺乏经验的 SQL 用户。我想做的是每年每个月只有一个条目。有没有办法在 SQL 中使用这样的日期时间?
问问题
2195 次
4 回答
4
添加一个month
和一个year
列,以及一个唯一索引(year, month)
。例如:
create unique index UX_YourTable_YearMonth on YourTable(year, month)
于 2012-11-19T17:39:31.713 回答
1
我肯定会将其存储在单个日期/时间字段中,您可以将日期存储为该月的第一天。
您可以使用DATEADD(month, DATEDIFF(month, 0, @mydate), 0)
使用日期字段的优势在于,它将使分组更容易使用大多数报告工具(如 Excel Pivot、Access、SQL Server 报告服务...
于 2012-11-20T13:15:18.763 回答
0
如果您的日期始终插入相同的日期和时间,则可以。例如,如果您的日期总是看起来像mm/01/yyyy 12:00:00
这样,那就可以了。但是我怀疑你的日期会是这样的。我建议将密钥放在两个独立的列上month, year
于 2012-11-19T17:39:51.297 回答
0
最好不要为此使用日期时间或时间戳。相反,请为年和月使用单独的列。使用 CHECK() 约束来保持值合理。如果您的 dbms 不强制执行 CHECK() 约束(例如 MySQL),请为有效年份和有效月份创建额外的表,并为它们设置外键引用。
create table your_table_name (
year integer not null check (year between 2000 and 2050),
month integer not null check (month between 1 and 12),
-- Other columns go here.
primary key (year, month)
);
于 2012-11-20T13:04:23.403 回答