web-dev-qa-db-fra.com

comment obtenir la date/heure actuelle en SQL?

Vous souhaitez que current datetime soit inséré dans la colonne lastModifiedTime. J'utiliseMySQLdatabase. Mes questions sont:

  1. existe-t-il une fonction disponible en SQL? ou 

  2. est-ce que la mise en œuvre dépend de sorte que chaque base de données a sa propre fonction pour cela?

  3. quelle est la fonction disponible dans MySQL?

21
5YrsLaterDBA

Réponse complète:

1. Une fonction est-elle disponible en SQL?
Oui, la spécification SQL 92, octobre 97, p. 171, la section 6.16 spécifie ces fonctions:

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. Il dépend de la mise en œuvre, donc chaque base de données a sa propre fonction pour cela?
Chaque base de données a ses propres implémentations, mais elles doivent implémenter les trois fonctions ci-dessus si elles sont conformes à la spécification SQL 92 (mais dépend de la version de la spécification).

3. Quelle est la fonction disponible dans MySQL?  

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

(Comme dit SixFootTallRabbit)

41
Eduardo Molteni

J'utilise toujours MAINTENANT ():

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

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

11
Nathan Loding

NOW () renvoie 2009-08-05 15:13:00

CURDATE () renvoie le 2009-08-05

CURTIME () retourne 15:13:00

7
Joseph Mansfield

Je veux mon date/heure et je le veux maintenant () !

Pour MySQL, en tout cas.

4
Matthew Jones

Pour SQL Server, utilisez GetDate () ou current_timestamp. Vous pouvez formater le résultat avec Convert (dataType, value, format). Marquez votre question avec le bon serveur de base de données.

2
Saif Khan
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

J'imagine que NOW () ne fonctionne parfois pas et donne l'erreur 'NOW' n'est pas un nom de fonction intégré reconnu.

J'espère que ça aide!!! Merci . https://docs.Microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql

1
Naive
  1. GETDATE () ou GETUTCDATE () sont maintenant remplacés par les plus riches SYSDATETIME, SYSUTCDATETIME et SYSDATETIMEOFFSET (SQL 2008)
  2. Oui, je ne pense pas que l'ANSI ait jamais déclaré quoi que ce soit et chaque fabricant a donc le sien.
  3. Ce serait maintenant ()

J'espère que cela t'aides...

Rob

0
Rob Farley