新聞中心
最近我們更新服務(wù)器和我們的數(shù)據(jù)庫系統(tǒng),以支持 UTC 時(shí)間,但是我們發(fā)現(xiàn)在一些復(fù)雜的查詢中,我們需要轉(zhuǎn)換服務(wù)器端的本地時(shí)間到毫秒級(jí)的 UTC 時(shí)間,以便執(zhí)行一些操作。 在 SQL 服務(wù)器中,我們可以通過轉(zhuǎn)換的技巧,輕松的實(shí)現(xiàn) UTC 時(shí)間和本地時(shí)間的轉(zhuǎn)換。

首先,我們可以使用 DateAdd 函數(shù)將本地時(shí)間轉(zhuǎn)換為 UTC 時(shí)間,例如:
SELECT DATEADD(HOUR, -4, GETDATE())
這將在本地時(shí)間上減去4小時(shí),從而將其轉(zhuǎn)換為 UTC 時(shí)間。 我們可以通過使用 DateAdd 函數(shù),以確定適用于當(dāng)前服務(wù)器時(shí)區(qū)的 GMT 時(shí)差,然后進(jìn)行計(jì)算:
SELECT DATEADD(HOUR, DATEDIFF(HOUR, GETUTCDATE(), CURRENT_TIMESTAMP), GETUTCDATE())
在上面的示例中,我們首先計(jì)算出當(dāng)前服務(wù)器時(shí)區(qū)與 UTC 時(shí)區(qū)之間的小時(shí)差,然后將這個(gè)值添加到 getutcdate() 函數(shù)返回的 UTC 時(shí)間中。
要使用 DateAdd 函數(shù)轉(zhuǎn)換毫秒級(jí)的 UTC 時(shí)間,我們需要使用 DATEADD 的 MILLISECOND 參數(shù):
SELECT DATEADD(MILLISECOND, DateDiff(SECOND, 0, GetUtcDate()) * 1000, 0)
在本例中,我們將 GetUTCdate() 轉(zhuǎn)換回從 1970 年 1 月 1 日開始的秒,然后將其乘以 1000,以換算為毫秒,然后將毫秒添加到 0 時(shí)間上。
我們可以使用上述技術(shù),將 UTC 時(shí)間轉(zhuǎn)換為其他 AndMS SQL 中的時(shí)區(qū),最重要的是,我們已經(jīng)可以支持復(fù)雜的查詢,而無需擔(dān)心服務(wù)器端本地時(shí)間和 UTC 時(shí)間的差異。 因此,我們可以準(zhǔn)確而精確的執(zhí)行諸如區(qū)分客戶端和服務(wù)器時(shí)間之類的操作,只需要適當(dāng)?shù)臅r(shí)間轉(zhuǎn)換技巧就可以實(shí)現(xiàn)。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、開啟建站+互聯(lián)網(wǎng)銷售服務(wù),與企業(yè)客戶共同成長,共創(chuàng)價(jià)值。
網(wǎng)站題目:時(shí)區(qū)間的MSSQLUTC時(shí)間轉(zhuǎn)換技巧(mssqlutc)
URL網(wǎng)址:http://m.fisionsoft.com.cn/article/cocochh.html


咨詢
建站咨詢
