como obter o datetime atual em SQL?

quero que current datetime insira na coluna lastModifiedTime. Eu estou usando MySQL base de dados. As minhas perguntas são:

  1. Existe uma função disponível em SQL? ou

  2. é a implementação depended então cada banco de dados tem sua própria função para isso?

  3. Qual é a função disponível no MySQL?

Author: DineshDB, 2009-08-05

7 answers

Resposta completa:

1. Existe uma função disponível em SQL?
Sim, o SQL 92 spec, 97 Oct, pg. 171, a secção 6.16 especifica estas funções:

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. É a implementação depended então cada banco de dados tem sua própria função para isso?
Cada banco de dados tem suas próprias implementações, mas eles têm que implementar as três funções acima se cumprirem com a especificação SQL 92 (mas depende da versão da spec)

3. O que é a função disponível no MySQL?

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

(como SixFootTallRabbit diz)

 34
Author: Eduardo Molteni, 2009-08-05 14:47:11

Eu uso sempre agora ():

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

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

 10
Author: Nathan Loding, 2009-08-05 14:12:59
O

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

O

O CURDATE () devolve 2009-08-05

O

CURTIME () devolve 15:13:00

 6
Author: Joseph Mansfield, 2009-08-05 14:14:02

Quero o meu datetime, e quero-o Agora () !

Pelo menos para o MySQL.
 3
Author: Matthew Jones, 2009-08-05 14:13:02

Para O servidor SQL use o GetDate () ou current_ timestamp. Você pode formatar o resultado com o Convert(dataType,valor,formato). Marque a sua pergunta com o servidor de Base de dados correcto.

 1
Author: Saif Khan, 2009-08-05 14:12:58
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

Acho que agora () não funciona em algum momento e dá erro 'Agora' não é um nome de função embutido reconhecido.

Espero que ajude!!! Obrigado. https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
 1
Author: Naive, 2017-05-08 21:36:44
  1. GETDATE () ou GETUTCDATE () são agora substituídos pelos mais ricos SYSDATETIME, SYSUTCDATETIME, e SYSDATETIMEOFFSET (em SQL 2008)
  2. Sim, acho que a ANSI nunca declarou nada e, por isso, cada fabricante tem o seu. Isso seria agora.
Espero que isto ajude...

Rob

 0
Author: Rob Farley, 2009-08-05 14:33:53