sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan make_date() virker i PostgreSQL

I PostgreSQL er make_date() funktionen giver dig mulighed for at oprette en dato fra dens separate år, måned og dag felter.

Hver datodel er angivet som et heltal , og resultatet returneres som en dato .

Syntaks

Funktionen har følgende syntaks:

make_date(year int, month int, day int)

Hvor year , month og day er heltal, der repræsenterer året, måneden og dagen på datoen.

Eksempel

Her er et grundlæggende eksempel at demonstrere.

SELECT make_date(2020, 07, 25);

Resultat:

2020-07-25

Og vi kan bekræfte, at den returnerer datatypen dato med følgende forespørgsel.

SELECT pg_typeof(make_date(2020, 07, 25));

Resultat:

date

pg_typeof() funktion returnerer datatypen for dets argument, og så jeg sendte make_date() som argumentet..

Udenfor rækkevidde

Hvis nogen af ​​argumenterne er uden for rækkevidden af ​​de mulige værdier for dens datodel, får du fejlen "uden for område".

SELECT make_date(2020, 17, 25);

Resultat:

ERROR: date field value out of range: 2020-17-25

Her er den igen med en måned på 00:

SELECT make_date(2020, 00, 25);

Resultat:

date field value out of range: 2020-00-25

At sende strenge som argumenter

Postgres-dokumentationen siger, at argumenterne skal være heltal, men at sende strenge ser ud til at virke (sandsynligvis fordi de implicit er konverteret til heltal), så længe hvert argument er inden for dets rette område.

SELECT make_date('2020', '07', '25');

Resultat:

2020-07-25

Igen kan vi bruge pg_type() for at kontrollere, at resultatet faktisk er en dato datatype.

SELECT pg_typeof(make_date('2020', '07', '25'));

Resultat:

date

Du skal dog stadig sikre dig, at hvert argument er gyldigt, når det først er konverteret til et heltal, ellers får du en fejl som følgende.

SELECT make_date(2020, 'July', 25);

Resultat:

ERROR: invalid input syntax for type integer: "July"
LINE 1: SELECT make_date(2020, 'July', 25);

  1. Hvordan får man en alder fra et D.O.B-felt i MySQL?

  2. PostgreSQL UNIX domæne sockets vs TCP sockets

  3. Sådan tilføjer du rangordnede positioner af rækker i SQL med RANK()

  4. Cloud Migration 101:Flytning fra SQL Server til Azure