2016-08-17 26 views
0

我正在嘗試編寫一個自動化代碼,我想使用它的當前日期,但時間必須是特定的。GETUTCDATE但指定自定義時間

SELECT 
    col_name 
FROM 
    table 
WHERE 
    CONVERT(DATE, start_datetime) = CONVERT(date, GETUTCDATE()) 

我該如何提及具體時間?

+0

你知道的時區? – Brad

+0

時區格林尼治標準時間。雖然不是太特別 – Mailer456

+0

如果你的時區是格林威治標準時間,你想轉換爲UTC ....我不知道你有多少工作在你面前 – Brad

回答

0

哇我花了一分鐘我不理解你的問題。但我想你是問如何指定一個時間今天,並將其與您的start_datetime值進行比較,以查看它們是否在同一時間。

這個問題將歸結爲你想成爲多麼準確。例如在特定的時間?在x分鐘內?秒.... ????

而且有很多方法可以回答這個問題。

第一個問題是你的start_datetime存儲在哪個時區?因爲如果您的start_date不是UTC格式,您可能不想使用UTC日期!如果不是utc服務器設置的時區,GETDATE()和start_datetime是否在同一個區域?

任何時間今天在特定時間。在具體的小時和分鐘

SELECT 
    col_name 
FROM 
    table 
WHERE 
    CONVERT(DATE, start_datetime) = CONVERT(date, GETUTCDATE()) 
    AND HOUR(start_datetime) = 5 

任何時間今天

SELECT 
    col_name 
FROM 
    table 
WHERE 
    CONVERT(DATE, start_datetime) = CONVERT(date, GETUTCDATE()) 
    AND DATEPRT(HOUR,start_datetime) = 5 
    AND DATEPART(MINUTE,start_datetime) = 15 

OR

SELECT 
    col_name 
FROM 
    table 
WHERE 
    start_datetime = CAST(CAST(GETUTCDATE() AS DATE) AS DATETIME) + CAST('05:15' AS DATETIME) 

OR

SELECT 
    col_name 
FROM 
    table 
WHERE 
    start_datetime = CONVERT(DATETIME,(CONVERT(VARCHAR(10),GETUTCDATE(),120) + ' 19:15')) 

對於塞康DS你基本上可以使用相同的技術爲小時/分鐘僅一個非此即彼秒特定時間後添加到要轉換的字符串或

對於剛剛=切換到>

+0

非常感謝您的幫助! – Mailer456

+0

很高興它有幫助。請接受我如果它爲你工作,這裏是一篇關於如何/爲什麼/何時需要它的文章:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work? newreg = 90b0e660d05f48ffaf48a419eaf51dcf – Matt