最有價值的專業人士,SQL SELECT每月的第一天和最後一天。
我有一個查詢內置來獲取本月的第一天和最後一天,但我有一個月的第一天的時間戳的問題。
declare @FirstDOM datetime, @LastDOM datetime
set @FirstDOM = (select dateadd(dd,-(day(getdate())-1),getdate()))
set @LastDOM = (select dateadd(s,-1,dateadd(mm,datediff(m,0,getdate())+1,0)))
因爲它是2015年2月,我希望得到的結果:
@FirstDOM = 2015-02-01 00:00:00.000
@LastDOM = 2015-02-28 23:59:59.000
@LastDOM是正確的,但我沒有收到對@FirstDOM的時間戳部分的零,我得到正確的日期,但我運行腳本的時間。說它是上午8點50分,我得到:
2015-02-01 08:50:49.160
什麼是解決這個小snafu的最佳方法?
問候,
尼克
由於getdate()是datetime,所以你的查詢也會返回datetime。一種方法是將結果轉換爲日期,然後轉換爲varchar並手動添加時間,或者可以使用datepart和dateadd獲得相同的結果。 – glaeran 2015-02-10 14:02:53
FWIW,'23:59:59.000'不是一個月內的最後一次。你可能會錯過一些數據。 – 2015-02-10 14:09:17
http://stackoverflow.com/questions/113045/how-to-return-the-date-part-only-from-a-sql-server-datetime-datatype – 2015-02-10 14:12:27