是否可以使用常规日期时间在SQL Server 2008中保存月份/年份?我不需要时间戳,列将存储唯一的mo / yr组合(即10-11,11-11,12-11等)。
有什么建议吗?
答案 0 :(得分:14)
在不知道预期用途的情况下,无法正确建议。但是,至少可以通过三种方式轻松存储月份和年份:
答案 1 :(得分:2)
无论如何,Sql Server都会完整地存储日期时间数据(年 - 月 - 日小时:min:sec.milliSec)。
当您存储日期时,您可以将该日期定为该月的第1天。只需在查询时格式化日期。
答案 2 :(得分:1)
您只能在DateTime列中存储年份和月份。那么,你可以做的是默认其余的值。即:2011.10.1.1,2011.11.1.1就是这样。
或者您可以将其存储为字符串。
答案 3 :(得分:1)
从SQLServer 2008开始:
另存为Date
列并添加以下检查约束,以确保该值始终是该月的第一天:
datepart(month,MyDate)<> datepart(month,dateadd(day,-1,MyDate))
答案 4 :(得分:0)
SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 105), 7) AS [MM-YYYY]
您应该尝试这个