Atrisināts: konvertēt utc uz est

Pēdējā atjaunošana: 09/13/2023

Darbs ar UTC (koordinēto universālo laiku) SQL var būt nedaudz sarežģīts, it īpaši, ja tas ir jāpārvērš dažādās laika zonās, piemēram, EST (austrumu standarta laiks). Tas ir vēl sarežģītāk, ja ņemat vērā vasaras laiku. Tomēr, pareizi izprotot un pielietojot funkcijas, uzdevums kļūst vieglāks. Svarīga šī uzdevuma daļa ir izpratne par UTC un EST jēdzieniem un to savstarpējo saistību.

Izpratne par UTC un EST

UTC, saīsinājums no koordinētā universālā laika, ir laika standarts, ko pasaule izmanto, lai iestatītu savus pulksteņus. Tas tiek uzskatīts par bāzes laiku, no kura tiek aprēķinātas visas pārējās laika joslas. No otras puses, EST attiecas uz austrumu standarta laiku, kas ir UTC-5. Tas nozīmē, ka tas ir piecas stundas aiz UTC. Tomēr vasaras laikā tas kļūst par UTC-4.

Veicot konvertēšanu starp šīm divām laika joslām , jums būs jāizmanto īpašas SQL funkcijas un jāņem vērā arī vasaras laiks.

SQL funkcijas laika konvertēšanai

Lai konvertētu UTC uz EST SQL, parasti jāizmanto funkcija DATEADD. Šī funkcija pievieno noteiktu vērtību datuma vai datuma laika daļai. Šeit ir SQL fragments:

SELECT DATEADD(hh, -5, GetUTCDate())

Šajā piemērā GetUTCDate() iegūst pašreizējo UTC datumu un laiku, un funkcija DATEADD no tā atņem 5 stundas, lai to pārvērstu par EST.

Vasaras laika apstrāde

Sarežģījumus rada fakts, ka Austrumu standarta laiks daļu gada kļūst par Austrumu vasaras laiku (EDT). EDT atpaliek tikai par 4 stundām UTC. Tāpēc, veicot reklāmguvumus, ir nepieciešams līdzeklis, lai pielāgotos šim faktam.

Piemēram, šis koda fragments ņem vērā vasaras laiku:

SELECT
CASE
   WHEN DATEADD(hh, -5, GetUTCDate()) BETWEEN 
       (SELECT DATEADD(hh, -5, dateadd(dd, 0-datediff(dd, 0, GetUTCDate()), 
          dbo.GetDaylightSavingsSwitchPoint_ForYear(DATEPART(YEAR,GetUTCDate()),1)))) AND 
       (SELECT DATEADD(hh, -5, dateadd(dd, 0-datediff(dd, 0, GetUTCDate()), 
          dbo.GetDaylightSavingsSwitchPoint_ForYear(DATEPART(YEAR,GetUTCDate()),2))))
   THEN DATEADD(hh, -4, GetUTCDate()) ELSE DATEADD(hh, -5, GetUTCDate())
END AS EST

Sarežģītākā šī koda daļa ir nepieciešamība noteikt precīzus laikus un datumus, kad sākas un beidzas vasaras laiks, kas mainās katru gadu. Tam nepieciešamas uzlabotas SQL zināšanas.

Pielietojums: Plānošana un uzskaite

Izpratne par to, kā konvertēt UTC uz EST SQL, ir īpaši noderīga, strādājot ar plānošanas sistēmām, uzskaiti un jebkuru programmu, kas apstrādā datumu un laiku. Šādu reklāmguvumu lietojumprogrammas ietver rezervēšanas sistēmas, banku sistēmas, notikumu reģistrēšanu dažādās laika joslās, lai pieminētu tikai dažus.

Tas ir arī svarīgi, lai nodrošinātu precīzu vēsturisko datu saglabāšanu , jo tas nodrošina, ka saglabātais laiks ir vienāds neatkarīgi no laika joslu atšķirībām.

Citi laika joslu reklāmguvumi

Papildus UTC konvertēšanai uz EST, iespējams, būs jākonvertē arī UTC uz citām laika zonām. Līdzīgi kā iepriekš, jūs izmantosit arī funkciju DATEADD, un atšķirība ir stundu skaits, ko pievienojat vai atņemat no UTC datuma un laika.

Atcerieties, ka šo laika joslu reklāmguvumu izpratne un spēja tos precīzi lietot ir obligāta prasmēm ikvienam SQL izstrādātājam, it īpaši, ja jūsu lietojumprogramma apstrādā datus no dažādām ģeogrāfiskām vietām.

Related posts: