我正在使用SQL Server 2008.
我在我的数据库中有一些日期,我"想"我想分解成更小的部分.日期是生日和死亡日.我想通过查询10月或5月12日或1945年出生的人来输出它们.
有人告诉我,这样做的一种典型方法是将日期分成小块并将每一段日期放入自己的列中,如下所示:
2001-03-12 00:00:00 // EventDate column
Run Code Online (Sandbox Code Playgroud)
添加以下列:
2001 // EventYear column
03 // EventMonth column
12 // EventDay column
Run Code Online (Sandbox Code Playgroud)
首先,这是一个很好的方法吗?如果是这样,第二,我可以以某种方式让SQL Server自动打破日期部分并将其放入自己的列中吗?
我很感激想法和解决方案.
我建议您将其保留为日期列,然后在查询中使用DatePart来过滤结果.
Select * from TABLEX
where DatePart(YEAR,EventDate) = 1945
Run Code Online (Sandbox Code Playgroud)