2017-06-12 66 views
2

我有這樣的:SQL - 變換GETDATE()到正好小時

SELECT GETDATE() 

這給了我:

2017-06-12 16:51:50.410 

我如何轉換這種爲了得到:

2017-06-12 16:00:00.000 

我有一些過程,我正在註冊工作的日期和時間,但我只想要一個小時。

我該怎麼做?

感謝

回答

4

要獲得getdate()截斷小時:

select dateadd(hour, datediff(hour, 0, getdate()), 0) 

這增加的小時數,因爲1900-01-01的日期1900-01-01

您還可以將hour換成其他級別的截斷:年,季,月,日,分,秒等等。

-1

我覺得最可讀的解決方案是:

SELECT convert(datetime,FORMAT(GETDATE(),'yyyy-MM-dd HH:00:00.000')) 
  • FORMAT得到GETDATE時間戳正是你想要的。

  • CONVERT確保數據類型是日期時間。

+0

hh是12小時制,因此13:00將是凌晨1個 –

+0

感謝約翰。更新爲從24小時到HH。 – GlennFriesen

+1

不用擔心。只是不希望OP得到意想不到的結果。爭論的焦點。看起來我們都被壓低了。如果以負責任的方式使用Format()是一個有效的解決方案。許多人不這樣看 –