SBB*_*SBB 11 sql t-sql datetime
我有一些数据,我试图提取报告,我正在编写一份年度报告.表中的列格式为datetime.我正在尝试运行一个select语句来获取date =今年的所有结果.
例如:
SELECT A.[id], A.[classXML]
FROM tuitionSubmissions as A
WHERE A.[status] = 'Approved' AND A.[reimbursementDate] = THISYEAR
FOR XML PATH ('data'), TYPE, ELEMENTS, ROOT ('root');
Run Code Online (Sandbox Code Playgroud)
有没有一种方法来实现这个?
Jus*_*son 18
是的,实际上非常容易:
WHERE YEAR(A.[reimbursementDate]) = YEAR(GETDATE())
Run Code Online (Sandbox Code Playgroud)
如果性能是一个问题,这应该是一个更好的方法(虽然它不那么可读)
where A.[reimbursementDate] between
DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()), 0) and
DATEADD(MILLISECOND, -3, DATEADD(YEAR, DATEDIFF(YEAR, 0, GETDATE()) + 1, 0))
Run Code Online (Sandbox Code Playgroud)
那些时髦的 DATEADD 语句返回当年的第一天和最后一天(截至 12 月 31 日 23:59:59.997)。由于reimbursementDate不包含在函数中,查询将能够利用任何适用的索引。
| 归档时间: |
|
| 查看次数: |
16024 次 |
| 最近记录: |