我如何爲特定時間指定當前日期?如何將當前日期與特定時間分配給列?
比方說8:00:00 AM到列EXIT_DT數據類型datetime
??
我試過GETDATE()
AS EXIT_DT,但它給了我當前的日期時間。我正在使用Sql server 2005.任何幫助?
可以說今天是1/3/2013,我希望我的結果返回值爲1/3/2013 8:00:00 AM的日期時間數據類型。如果我運行ytd語句,結果將是1/2/2013 8:00:00 AM
我如何爲特定時間指定當前日期?如何將當前日期與特定時間分配給列?
比方說8:00:00 AM到列EXIT_DT數據類型datetime
??
我試過GETDATE()
AS EXIT_DT,但它給了我當前的日期時間。我正在使用Sql server 2005.任何幫助?
可以說今天是1/3/2013,我希望我的結果返回值爲1/3/2013 8:00:00 AM的日期時間數據類型。如果我運行ytd語句,結果將是1/2/2013 8:00:00 AM
這個公式總是會產生08:00的一天,它被調用,避免字符串操作:
select DATEADD(day,DATEDIFF(day,'20010101',GETDATE()),'2001-01-01T08:00:00')
儘量避免轉換爲與字符串的解決方案 - 治療datetime值作爲字符串是一個錯誤的最大來源。
它通過計算天數(作爲一個整數)自1月1日起已經過2001年,然後補充說,同樣的天數,以08:00 1日2001年1月
使用與getdate()一起轉換以獲取特定格式。
例如:
SELECT CONVERT(VARCHAR(30),GETDATE(),113)
我試過這個沒有達到我想要的。我想要的數據類型datetime的結果不是varchar(30)。還有什麼幫助? – 10e5x
SELECT CONVERT(datetime,CONVERT(VARCHAR(30),GETDATE(),113)) –
你可以試試這個:
DECLARE @dt datetime;
SET @dt=CONVERT(DateTime, CONVERT(VARCHAR,GETDATE(),101)+' 8:00:00')
SELECT CONVERT(VARCHAR, @dt, 101)+' '+ LTRIM(RIGHT(CONVERT(VARCHAR(20),@dt, 100), 7))
訪問http://www.sql-server-helper.com/tips/date-formats.aspx爲datetime
格式。
這是一個有點愚蠢的,但它的工作原理
select cast(cast(getdate() as date) as datetime) + '08:00:00'
它施放getdate()
到date
從而失去小時,比它轉換到datetime
,並增加了8個小時。
如果你想避免datetime
的varchar
隱式轉換,你可以使用這個版本:
select cast(cast(getdate() as date) as datetime)
+ convert(datetime,'08:00:00',114)
這也是工作。 (1)。將今天的日期轉換爲ISO format (yyyymmdd)
(2)。加上時間,(3)。轉換回日期時間
Select convert(datetime, convert(varchar, getdate(),112) + ' ' + '8:00:00AM')
--Results
2013-01-03 08:00:00.000
如果您需要特定格式,則需要再次轉換回varchar。
-- AM/PM --
SELECT TO_CHAR(sysdate, 'MM/DD/YYYY HH:MI:SS AM') FROM dual
/
-- 24 hrs format --
SELECT TO_CHAR(sysdate, 'MM/DD/YYYY HH24:MI:SS') FROM dual
/
感謝它的工作 – 10e5x
其他答案也可以工作,但urs真的很短,很甜。聰明! – 10e5x