Mia*_*mad 4 sql sql-server sql-server-2008
从特定日期开始过去12个月很容易,可以通过SQL服务器中的以下命令检索.它的答案是2014-08-17.
select Dateadd(Month, -12, '2015-08-17')
Run Code Online (Sandbox Code Playgroud)
我想是让过去12个月,但在2014-08-结束01(在上述情况下),而不是在本月中旬的任何地方.
Mad*_*nan 10
SELECT dateadd(month,datediff(month,0,getdate())-12,0)
Run Code Online (Sandbox Code Playgroud)
结果是
-----------------------
2014-08-01 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
所以 where 子句应该是
WHERE datecol >=dateadd(month,datediff(month,0,getdate())-12,0)
Run Code Online (Sandbox Code Playgroud)
获取从去年同月的 1 月 1 日开始的所有数据
使用DATEADD和DATEDIFF:
DECLARE @ThisDate DATE = '20150817'
SELECT DATEADD(YEAR, -1, DATEADD(MONTH, DATEDIFF(MONTH, '19000101', @ThisDate), '19000101'))
Run Code Online (Sandbox Code Playgroud)
有关更常见的日期例程,请参阅Lynn Pettis 撰写的这篇文章.
在你的WHERE条款中使用:
DECLARE @ThisDate DATE = '20150817'
SELECT *
FROM <your_table>
WHERE
<date_column> >= DATEADD(YEAR, -1, DATEADD(MONTH, DATEDIFF(MONTH, '19000101', @ThisDate), '19000101'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19076 次 |
| 最近记录: |