2009-08-05 40 views
13

Quiere obtener la fecha y hora actuales para insertar en la columna lastModifiedTime. Estoy usando la base de datos MySQL. Mis preguntas son:cómo obtener la fecha y hora actual en SQL?

  1. ¿hay una función disponible en SQL? o

  2. es dependiente de la implementación por lo que cada base de datos tiene su propia función para esto?

  3. ¿Cuál es la función disponible en MySQL?

+4

¿No sería agradable si ANSI-SQL requirió que estas funciones básicas del sistema se nombraran consistentemente en todas las plataformas? Estandarizar (substring o substr) o (IsNull o NVL). – Bill

Respuesta

27

La respuesta completa:

1. ¿Existe una función disponible en SQL?
Sí, la especificación SQL 92, oct 97, pg. 171, sección 6.16 especifica estas funciones:

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. se depende aplicación por lo que cada base de datos tiene su propia función para esto?
Cada base de datos tiene sus propias implementaciones, pero tienen que poner en práctica los tres función anterior si cumplen con la especificación SQL 92 (pero depende de la versión de la especificación)

3. ¿Cuál es la función disponible en MySQL?

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

(Como dice SixFootTallRabbit)

1

Para SQL Server, use GetDate() o current_timestamp. Puede formatear el resultado con Convert (dataType, value, format). Marque su pregunta con el servidor de base de datos correcto.

2

Quiero que mi fecha y hora, y lo quiero now()!

Para MySQL, de todos modos.

+1

Eso es lindo ... No funciona con Microsoft: "¡Quiero mi fecha, y la quiero GetDate()!" –

+0

Claro que sí. "¡Bien, señor, puede GetDate() a partir de ahora!" –

4

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

CURDATE() devuelve 2009-08-05

CURTIME() devuelve 15:13:00

0
  1. GETDATE() o GETUTCDATE() ahora son reemplazados por los SYSDATETIME, SYSUTCDATETIME y SYSDATETIMEOFFSET (en SQL 2008) más ricos
  2. Sí, no creo que ANSI alguna vez haya declarado nada, por lo que cada fabricante tiene el suyo.
  3. Eso sería NOW()

Espero que esto ayude ...

Rob

1
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 

supongo que ahora() no funciona en algún momento y da error 'ahora' no es un nombre de función integrada reconocida.

Espero que ayude !!! Gracias. https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql

Cuestiones relacionadas