logo

SQL datum och tid funktioner

I SQL , datum är komplicerade för nybörjare, eftersom när du arbetar med en databas måste formatet på data i tabellen matchas med indata som ska infogas. I olika scenarier istället för datum används datetime (tid är också inblandat med datum).

För att lagra ett datum eller ett datum- och tidsvärde i en databas, MySQL erbjuder följande datatyper:



DATUM format ÅÅÅÅ-MM-DD
DATUM TID format: ÅÅÅÅ-MM-DD TT:MI: SS
TIDSSTÄMPEL format: ÅÅÅÅ-MM-DD TT:MI: SS
ÅR format YYYY eller YY

Kom nu till några populära funktioner i SQL-datumfunktioner.

NU()

Returnerar aktuellt datum och tid.

Fråga:



SELECT NOW();>

Produktion:

nu metoden utdatabild

CURDATE()

Returnerar det aktuella datumet.



java-strängen innehåller

Fråga:

SELECT CURDATE();>

Produktion:

UTGÅNG2

CURTIME()

Returnerar aktuell tid.

Fråga:

SELECT CURTIME();>

Produktion:

UTGÅNG3

DATUM()

Extraherar datumdelen av ett datum- eller datum/tid-uttryck. Exempel: För tabellen nedan med namnet 'Test'

Id namn Födelsetid
4120 Öva 1996-09-26 16:44:15,581

Fråga:

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

Produktion:

namn Födelsedatum
Öva 1996-09-26

EXTRAHERA()

Returnerar en enskild del av ett datum/tid.

Syntax

EXTRACT(enhet FRÅN datum);

Flera enheter kan komma i fråga men endast några används som t.ex MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc. Och 'datum' är ett giltigt datumuttryck. Exempel: För tabellen nedan med namnet 'Test'

Id namn Födelsetid
4120 Öva 1996-09-26 16:44:15,581

Fråga:

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

Produktion:

namn Födelsedag
Öva 26

Fråga:

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

Produktion:

namn Födelseår
Öva nitton nittiosex

Fråga:

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

Produktion:

namn BirthSecond
Öva 581

DATE_ADD()

Lägger till ett angivet tidsintervall till ett datum.

Syntax:

DATE_ADD(datum, INTERVAL expr-typ);

Där, datum – giltigt datumuttryck och expr är antalet intervall vi vill lägga till. och typ kan vara något av följande: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR, etc. Exempel: För tabellen nedan med namnet 'Test'

Id namn Födelsetid
4120 Öva 1996-09-26 16:44:15,581

Fråga:

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

Produktion:

namn Födelsetid Modifierad
Öva 1997-09-26 16:44:15,581

Fråga:

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

Produktion:

namn Födelsedag Modifierad
Öva 1996-10-26 16:44:15,581

Fråga:

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

Produktion:

namn BirthSecond
Öva 1996-10-26 20:44:15,581

DATE_SUB()

Subtraherar ett angivet tidsintervall från ett datum. Syntaxen för DATE_SUB är densamma som DATE_ADD, bara skillnaden är att DATE_SUB används för att subtrahera ett givet datumintervall.

DATEDIFF()

Returnerar antalet dagar mellan två datum.

Syntax:

DATUMDIFF(datum1, datum2);

datum1 & datum2- datum/tid uttryck

Fråga:

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

Produktion:

för varje java
DateDiff
10

DATUMFORMAT()

Visar datum/tid i olika format.

Syntax:

DATUM_FORMAT(datum,format);

datumet är ett giltigt datum och formatet anger utdataformatet för datumet/tiden. De format som kan användas är:

  • %a-förkortat veckodagsnamn (sön-lör)
  • %b-Förkortat månadsnamn (jan-dec)
  • %c-månad, numerisk (0-12)
  • %D-dag i månaden med engelska suffix (0:a, 1:a, 2:a, 3:a)
  • %d-dag i månaden, numerisk (00-31)
  • %e-dag i månaden, numerisk (0-31)
  • %f-mikrosekunder (000000-999999)
  • %H-timme (00-23)
  • %h-timme (01-12)
  • %I-Hour (01-12)
  • %i-minuter, numerisk (00-59)
  • %j-dag på året (001-366)
  • %k-timmar (0-23)
  • %l-timme (1-12)
  • %M-månadsnamn (januari-december)
  • %m-månad, numerisk (00-12)
  • %p-AM eller PM
  • %r-Tid, 12 timmar (tt:mm: ss följt av AM eller PM)
  • %S-sekunder (00-59)
  • %s-sekunder (00-59)
  • %T-tid, 24 timmar (tt:mm: ss)
  • %U-vecka (00-53) där söndag är den första dagen i veckan
  • %u-vecka (00-53) där måndag är den första dagen i veckan
  • %V-vecka (01-53) där söndag är den första dagen i veckan, används med %X
  • %v-vecka (01-53) där måndag är den första dagen i veckan, används med %x
  • %W-veckans namn (söndag-lördag)
  • %w-veckodag (0=söndag, 6=lördag)
  • %X-år för veckan där söndag är den första dagen i veckan, fyra siffror, används med %V
  • %x-år för veckan där måndag är den första dagen i veckan, fyra siffror, används med %v
  • %Y-Year, numeriskt, fyra siffror
  • %y-Year, numerisk, två siffror