Selv om standard tidssonen for den returnerte verdien fra gjeldende_date-funksjonen er UTC, kan den endres ved hjelp av andre Redshift-innebygde funksjoner. Tilsvarende kan noen rødforskyvede innebygde funksjoner brukes til å trekke ut dagen, måneden og året fra verdien som returneres fra Current_date-funksjonen.
I denne bloggen vil vi se hvordan Redshift Current_Date -funksjonen kan brukes til forskjellige brukssaker.
Syntaks av Current_date
Syntaksen til Current_date-funksjonen er mye enklere enn andre innebygde funksjoner som er tilgjengelige for rødforskyvning. Current_date -funksjonen tar ingen argumenter og kan brukes sammen med en SELECT -setning. Følgende er syntaks for å få startdatoen for den nåværende transaksjonen som kjører på Amazon Redshift.
Velg Current_Date;Få gjeldende dato ved hjelp av Current_Date -funksjonen
For å få gjeldende dato i Amazon Redshift, kan du bruke Current_Date -funksjonen. Current_date -funksjonen returnerer startdatoen for transaksjonen i stedet for startdatoen for gjeldende uttalelse.
Følgende spørsmål vil returnere startdatoen for den nåværende transaksjonen i Amazon Redshift.
Velg Current_Date;Følgende vil være utgangen fra Current_date -funksjonen i Amazon Redshift Cluster.
DATODatoen som returneres fra Current_date -funksjonen vil være i UTC -tidssonen. Du må stille det inn i henhold til tidssonen din før du avslutter resultatene.
Endre tidssonen for Current_date
Som beskrevet tidligere, vil datoen som er returnert av Current_Date -funksjonen være i UTC -tidssonen som standard. For å få datoen i ønsket tidssone, må du endre tidssonen for datoen fra UTC til din foretrukne tidssone.
For å konvertere tidssonen til gjeldende_datingsfunksjonen, vil vi bruke en annen innebygd funksjon Convert_TimeZone. Denne funksjonen vil ta kildetidssonen, måltidssonen og kildetiden, og den vil konvertere tiden til måletidssonen.
Følgende spørring genererer startdatoen for den nåværende transaksjonen i ønsket tidssone.
Velg Convert_TimeZone ('UTC', 'GMT+5', Current_Date);Når den utføres i rødforskyvning, vil den forrige spørringen først få den gjeldende datoen ved å bruke gjeldende_date -funksjonen i UTC -tidssonen og deretter konvertere tidssonen til datoen fra UTC til GMT+5.
Få dag, måned og år fra Current_Date
Current_date-funksjonen returnerer datoen i YYYY-MM-DD-format i UTC-tidssonen. Du kan trekke ut året, måneden og dagen fra datoen ved å bruke Extract -funksjonen i Amazon Redshift.
For å trekke ut året fra datoen ved hjelp av Current_Date og Extract -funksjonen, utfør følgende spørsmål i Redshift Cluster:
Velg Extract (år fra Current_Date) som år;Den forrige spørringen vil først få startdatoen for den nåværende transaksjonen i UTC -tidssonen, og deretter vil Extract -funksjonen trekke ut året fra den datoen.
Tilsvarende kan du få måneden fra gjeldende dato ved å bruke Extract -metoden. Å utføre følgende spørsmål vil trekke ut måneden fra datoen i Redshift -klyngen:
Velg Extract (måned fra Current_Date) som måned;For å trekke ut datoen fra Current_Date -funksjonen ved å bruke Extract -funksjonen, utfør følgende spørsmål i Redshift -klyngen:
Velg Extract (dag fra Current_Date) som dag;Den forrige Redshift -spørringen vil returnere datoen i dag ved å trekke den ut fra Current_date -funksjonen.
Du kan også bruke Current_Date -funksjonen med Convert_TimeZone og trekke ut funksjoner for å trekke ut datoen fra gjeldende dato i den nødvendige tidssonen. Utfør følgende spørsmål i Redshift -klyngen for å trekke ut datoen fra gjeldende dato i GMT+5 tidssone.
Velg Convert_TimeZone ('UTC', 'GMT+5', Extract (Day from Current_Date));Den forrige spørringen vil først få gjeldende dato, og deretter vil ekstraktfunksjonen trekke ut datoen fra Current_date -funksjonen. Deretter vil Convert_TimeZone -funksjonen endre tidssonen for datoen fra UTC til GMT+5.
Endre datoformat
Standardformatet til Current_Date-funksjonen er YYYY-MM-DD, men du kan alltid endre datoformatet. TO_CHAR -funksjonen kan brukes til å endre standardformatet til Current_Date -funksjonen.
Følgende spørring får startdatoen for gjeldende transaksjon i ønsket format.
Velg To_Char (Current_Date, 'Mm-Dd-Yyyy');Konklusjon
Current_date -funksjonen i Redshift kan brukes til å få startdatoen for den nåværende transaksjonen som kjører på klyngen. Som standard returnerer denne funksjonen gjeldende dato i UTC tidssone i åååå-mm-dd-format. Denne funksjonen kan brukes med andre funksjoner for å få gjeldende dato i ønsket format og tidssone. Denne artikkelen beskriver forskjellige tilfeller av bruk av Current_Date -funksjonen i forbindelse med andre funksjoner relatert til tid og dato, for eksempel Convert_TimeZone og Extract.