在SQL Server 2008中,是否可以使用常规日期时间保存月份/年份?我不需要时间戳,并且该列将存储唯一的月/年组合(即10-11、11-11、12-11等)。
有什么建议吗?
在SQL Server 2008中,是否可以使用常规日期时间保存月份/年份?我不需要时间戳,并且该列将存储唯一的月/年组合(即10-11、11-11、12-11等)。
有什么建议吗?
如果不知道预期使用情况,就无法给出正确的建议。然而,存储月份和年份至少可以通过以下三种方式轻松完成:
无论如何,SQL Server都会完整存储日期时间数据(年-月-日 时:分:秒.毫秒)。
当您存储日期时,可以将日期设为该月的第一天。在执行查询时,只需按照自己的喜好格式化日期即可。
从SQLServer 2008开始:
保存为Date
列,并添加以下检查约束条件,以确保该值始终为该月的第一天:
datepart(month, MyDate)<>datepart(month,dateadd(day, -1, MyDate))
DAY(MyDate) = 1
。 - Sam在 DateTime 列中,您不能仅存储年份和月份。不过,您可以将其余的值设置为默认值。例如:2011.10.1.1、2011.11.1.1 等。
或者您也可以将其存储为字符串。
SELECT RIGHT(CONVERT(VARCHAR(10), GETDATE(), 105), 7) AS [MM-YYYY]
你应该试试这个