我试图弄清楚如何根据偶数或不均匀的日期选择记录。
我有一个有4列的表,其中一个有注册日期,我想根据他们的注册日期将它们分成两组(以日作为分母)。因此,12/4/2013将处于平衡状态,2012年4月3日将处于不平衡状态。
我不确定如何构建此查询,我正在查看datepart但不确定是否有更直接的内容。
感谢
答案 0 :(得分:3)
SELECT signed_on, DAY(signed_on) % 2 AS uneven
FROM YourTable
uneven
可以是0
或1
SELECT DAY('2013-01-03') % 2 -- 1
SELECT DAY('2013-01-02') % 2 -- 0
如果您想将列命名为甚至而不是不均匀,则可以反转结果。
SELECT signed_on, POWER(DAY(signed_on) % 2 - 1, 2) AS even
FROM YourTable
答案 1 :(得分:2)
提示(现在除非你能证明你自己尝试了一些东西)你可以用DATEPART(day, date) % 2
做一些带有案例陈述的事情(案件陈述不是必需的,但如果你想轻易介入在不改变查询的情况下均匀和不均匀,具体取决于您的环境。)
答案 2 :(得分:0)
DATEPART(dd, your_date)
应该为您提供日期的日期部分,然后使用%来查找WHERE
子句中是否为偶数。
答案 3 :(得分:0)
我相信这样的事情应该是直截了当的 -
SELECT COL,CASE WHEN DAY(COL)%2=0 THEN 'EVEN' ELSE 'UNEVEN' END AS [EVEN_UNEVEN]
FROM TEST
我的样本表中的示例输出 -
COL EVEN_UNEVEN
2014-01-09 22:39:51.203 UNEVEN
2014-01-10 22:39:51.210 EVEN
2014-01-12 22:39:51.210 EVEN
2014-01-13 22:39:51.213 UNEVEN