kor*_*wan 8 t-sql sql-server datetime
我有一个名为DateFinished的日期时间字段.我需要能够检索DateFinished在当前月/年内的所有记录.
Bri*_*dge 19
如果你只有少量的行,这将使得所有行都DateFinished在今年的这个月.
SELECT *
FROM MyTable
WHERE Year(DateFinished) = Year(CURRENT_TIMESTAMP)
AND Month(DateFinished) = Month(CURRENT_TIMESTAMP)
Run Code Online (Sandbox Code Playgroud)
这可能会在很多行上变得非常慢 - 在这种情况下使用DateAdd,DatePart并且BETWEEN可能更合适,并且可以利用索引(我没有时间写一个涉及那些的答案!)
Moo*_*ose 11
作为替代 - 这应该使用DateFinished上的索引.
SELECT *
FROM MyTable
WHERE DateFinished BETWEEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AND
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27315 次 |
| 最近记录: |