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:
Existe uma função disponível em SQL? ou
é a implementação depended então cada banco de dados tem sua própria função para isso?
Qual é a função disponível no MySQL?
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)
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
NOW () devolve 2009-08-05 15:13:00
OO CURDATE () devolve 2009-08-05
OCURTIME () devolve 15:13:00
Quero o meu datetime, e quero-o Agora () !
Pelo menos para o MySQL.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.
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- GETDATE () ou GETUTCDATE () são agora substituídos pelos mais ricos SYSDATETIME, SYSUTCDATETIME, e SYSDATETIMEOFFSET (em SQL 2008) Sim, acho que a ANSI nunca declarou nada e, por isso, cada fabricante tem o seu. Isso seria agora.
Rob