cum să obțineți data curentă în SQL? (Programare, Sql, Bază De Date, Timpul Curent)

5YrsLaterDBA a intrebat.

Doriți să obțineți current datetime pentru a insera în lastModifiedTime coloana. Folosesc MySQL baza de date. Întrebările mele sunt:

  1. există o funcție disponibilă în SQL? sau

  2. depinde de implementare, astfel încât fiecare bază de date are propria funcție pentru acest lucru?

  3. care este funcția disponibilă în MySQL?

Comentarii

  • Nu ar fi frumos dacă ANSI-SQL ar impune ca aceste funcții de sistem de bază să fie denumite în mod consecvent pe toate platformele? Standardizați (substring sau substr) sau (IsNull sau NVL). –  > Por Bill.
9 răspunsuri
Eduardo Molteni

Răspuns complet:

1. Există o funcție disponibilă în SQL?
Da, specificația SQL 92, octombrie 97, pg. 171, secțiunea 6.16 specifică această funcție:

CURRENT_TIME       Time of day at moment of evaluation
CURRENT_DATE       Date at moment of evaluation
CURRENT_TIMESTAMP  Date & Time at moment of evaluation

2. Depinde de implementare, astfel încât fiecare bază de date are propria funcție pentru acest lucru?
Fiecare bază de date are propriile implementări, dar trebuie să implementeze cele trei funcții de mai sus dacă respectă specificația SQL 92 (dar depinde de versiunea specificației).

3. Care este funcția disponibilă în MySQL?

NOW() returns 2009-08-05 15:13:00  
CURDATE() returns 2009-08-05  
CURTIME() returns 15:13:00  

Nathan Loding

Eu folosesc întotdeauna doar NOW():

INSERT INTO table (lastModifiedTime) VALUES (NOW())

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_now

Joseph Mansfield

NOW() returnează 2009-08-05 15:13:00

CURDATE() returnează 2009-08-05

CURTIME() revine 15:13:00

Matthew Jones

Îmi vreau data și ora de întâlnire, și o vreau acum()!

Pentru MySQL, oricum.

Comentarii

  • Asta e drăguț… Totuși, nu funcționează cu Microsoft: „I want my date, and I want it GetDate()!” –  > Por Wadih M..
  • Sigur că da. „Ei bine, domnule, de acum încolo poți să te GetDate() singur!” –  > Por Matthew Jones.
Naive
SYSDATETIME() 2007-04-30 13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00
SYSUTCDATETIME() 2007-04-30 20:10:02.0474381
CURRENT_TIMESTAMP 2007-04-30 13:10:02.047 +
GETDATE() 2007-04-30 13:10:02.047 
GETUTCDATE() 2007-04-30 20:10:02.047

Cred că NOW() nu funcționează uneori și dă eroare ‘NOW’ nu este un nume de funcție încorporată recunoscut.

Sper că vă ajută!!! Vă mulțumesc.https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql

Comentarii

  • *acestea sunt funcțiile pe care le folosiți în MS SQL Server –  > Por Don Cheadle.
Saif Khan

Pentru SQL Server folosiți GetDate() sau current_timestamp. Puteți formata rezultatul cu ajutorul funcției Convert(dataType,value,format). Etichetați întrebarea dvs. cu serverul de baze de date corect.

Rob Farley
  1. GETDATE() sau GETUTCDATE() sunt acum înlocuite de mai bogatele SYSDATETIME, , SYSUTCDATETIME, , și SYSDATETIMEOFFSET (în SQL 2008)
  2. Da, nu cred că ANSI a declarat vreodată ceva, astfel încât fiecare producător are propriul său.
  3. Aceasta ar fi NOW()

Sper că vă ajută…

Rob

pygalaxy

Doar o completare pentru SQLite, puteți folosi și SQLite

CURRENT_TIME
CURRENT_DATE
CURRENT_TIMESTAMP

pentru ora curentă, data curentă și timestamp-ul curent. Veți obține aceleași rezultate ca și pentru SQL

Navishka

încercați acest lucru

SELECT CURTIME(); return 23:12:58

SELECT CURDATE(); return 2020-11-12

SELECT NOW(); return 2020-11-12 23:19:26

SELECT DAY(now()); întoarce 12

SELECT DAYNAME(now()); return Joi

Sper că acest lucru vă va fi de ajutor.