logo

SQL-datum- en tijdfuncties

In SQL , datums zijn ingewikkeld voor nieuwelingen, omdat tijdens het werken met een database het formaat van de gegevens in de tabel moet worden afgestemd op de invoergegevens die moeten worden ingevoegd. In verschillende scenario's wordt in plaats van datum datetime (tijd is ook betrokken bij datum) gebruikt.

Voor het opslaan van een datum of een datum- en tijdwaarde in een database, MySQL biedt de volgende gegevenstypen:



DATUM formaat JJJJ-MM-DD
DATUM TIJD formaat: JJJJ-MM-DD HH:MI: SS
TIJDSTEMPEL formaat: JJJJ-MM-DD HH:MI: SS
JAAR formaat JJJJ of JJ

Kom nu naar enkele populaire functies in SQL-datumfuncties.

NU()

Retourneert de huidige datum en tijd.

Vraag:



SELECT NOW();>

Uitgang:

nu methode uitvoerafbeelding

CURDAAT()

Geeft de huidige datum terug.



Vraag:

SELECT CURDATE();>

Uitgang:

UITGANG2

mooiste glimlach ter wereld

CURTIME()

Geeft de huidige tijd terug.

Vraag:

SELECT CURTIME();>

Uitgang:

UITGANG3

DATUM()

Extraheert het datumgedeelte van een datum- of datum/tijd-expressie. Voorbeeld: Voor de onderstaande tabel met de naam ‘Test’

ID kaart Naam Geboortetijd
4120 Oefening 26-09-1996 16:44:15.581

Vraag:

SELECT Name, DATE(BirthTime)  AS BirthDate FROM Test;>

Uitgang:

Naam Geboortedatum
Oefening 26/09/1996

EXTRACT()

Retourneert een enkel deel van een datum/tijd.

Syntaxis

EXTRACT(eenheid VAN datum);

Er kunnen meerdere eenheden worden overwogen, maar er worden er slechts enkele gebruikt, zoals MICROSECONDE, TWEEDE, MINUUT, UUR, DAG, WEEK, MAAND, KWARTAAL, JAAR, enz. En ‘datum’ is een geldige datumuitdrukking. Voorbeeld: Voor de onderstaande tabel met de naam ‘Test’

ID kaart Naam Geboortetijd
4120 Oefening 26-09-1996 16:44:15.581

Vraag:

SELECT Name, Extract(DAY FROM  BirthTime) AS BirthDay FROM Test;>

Uitgang:

Naam Verjaardag
Oefening 26

Vraag:

SELECT Name, Extract(YEAR FROM BirthTime) AS BirthYear FROM Test;>

Uitgang:

Naam Geboortejaar
Oefening 1996

Vraag:

SELECT Name, Extract(SECOND FROM  BirthTime) AS BirthSecond FROM Test;>

Uitgang:

Naam GeboorteTweede
Oefening 581

DATE_ADD()

Voegt een opgegeven tijdsinterval toe aan een datum.

Syntaxis:

DATE_ADD(datum, INTERVAL expr-type);

Waarbij date – geldige datumexpressie, en expr het aantal intervallen is dat we willen toevoegen. en het type kan een van de volgende zijn: MICROSECONDE, SECONDE, MINUUT, UUR, DAG, WEEK, MAAND, KWARTAAL, JAAR, enz. Voorbeeld: Voor de onderstaande tabel met de naam ‘Test’

ID kaart Naam Geboortetijd
4120 Oefening 26-09-1996 16:44:15.581

Vraag:

SELECT Name, DATE_ADD(BirthTime, INTERVAL  1 YEAR) AS BirthTimeModified FROM Test;>

Uitgang:

Naam GeboortetijdGewijzigd
Oefening 26-09-1997 16:44:15.581

Vraag:

SELECT Name, DATE_ADD(BirthTime,  INTERVAL 30 DAY) AS BirthDayModified FROM Test;>

Uitgang:

Naam GeboortedagGewijzigd
Oefening 26/10/1996 16:44:15.581

Vraag:

SELECT Name, DATE_ADD(BirthTime, INTERVAL  4 HOUR) AS BirthHourModified FROM Test;>

Uitgang:

Naam GeboorteTweede
Oefening 26/10/1996 20:44:15.581

DATE_SUB()

Trekt een opgegeven tijdsinterval af van een datum. De syntaxis voor DATE_SUB is hetzelfde als DATE_ADD, alleen het verschil is dat DATE_SUB wordt gebruikt om een ​​bepaald datuminterval af te trekken.

DATUMVERSCH()

Retourneert het aantal dagen tussen twee datums.

Syntaxis:

DATUMVERSCH(datum1, datum2);

datum1 & datum2- datum/tijd-expressie

Vraag:

SELECT DATEDIFF('2017-01-13','2017-01-03') AS DateDiff;>

Uitgang:

DatumVerschil
10

DATUMNOTATIE()

Geeft datum-/tijdgegevens in verschillende formaten weer.

Syntaxis:

DATE_FORMAT(datum,notatie);

dynamisch programmeren

de datum is een geldige datum en het formaat specificeert het uitvoerformaat voor de datum/tijd. De formaten die gebruikt kunnen worden zijn:

  • %a - Verkorte naam van de weekdag (zon-za)
  • %b - Verkorte naam van de maand (januari-dec)
  • %c-Maand, numeriek (0-12)
  • %D-dag van de maand met Engels achtervoegsel (0e, 1e, 2e, 3e)
  • %d-Dag van de maand, numeriek (00-31)
  • %e-Dag van de maand, numeriek (0-31)
  • %f-microseconden (000000-999999)
  • %H-uur (00-23)
  • %u-uur (01-12)
  • %I-uur (01-12)
  • %i-minuten, numeriek (00-59)
  • %j-Dag van het jaar (001-366)
  • %k-uur (0-23)
  • %l-uur (1-12)
  • %M-maandnaam (januari-december)
  • %m-Maand, numeriek (00-12)
  • %p-AM of PM
  • %r-Tijd, 12 uur (uu:mm: ss gevolgd door AM of PM)
  • %S-seconden (00-59)
  • %s-seconden (00-59)
  • %T-tijd, 24 uur (uu:mm: ss)
  • %U-Week (00-53) waarbij zondag de eerste dag van de week is
  • %u-Week (00-53) waarbij maandag de eerste dag van de week is
  • %V-Week (01-53) waarbij zondag de eerste dag van de week is, gebruikt met %X
  • %v-Week (01-53) waarbij maandag de eerste dag van de week is, gebruikt met %x
  • %W-Weekdagnaam (zondag-zaterdag)
  • %w-Dag van de week (0=zondag, 6=zaterdag)
  • %X-Jaar voor de week waarin zondag de eerste dag van de week is, vier cijfers, gebruikt met %V
  • %x-Jaar voor de week waarin maandag de eerste dag van de week is, vier cijfers, gebruikt met %v
  • %Y-Jaar, numeriek, vier cijfers
  • %y-Jaar, numeriek, twee cijfers