2011-12-15 17 views
10

¿Cómo puedo recuperar un registro basado en una propiedad de fecha? Estoy intentando:Acceder al formato de fecha SQL

WHERE Meetings.[MDate] = '16/12/2011' 

que es el formato que utilizo pero me sale:

"No coinciden los tipos de datos en expresión de criterios"


Problema resuelto: debe han sido:

WHERE Meetings.[MDate] = 16/12/2011 

Sin comillas.

+1

¿Qué herramienta está involucrada? MSaccess? – wallyk

+1

Tenga cuidado con la configuración de LCID. Varía de servidor a servidor y puede cambiar la forma en que Access trata las fechas. Por ejemplo, aquí en Brasil, usamos ''dd/mm/aaaa'' para establecer los valores y' # mm/dd/aaaa # 'para seleccionar en las cláusulas where. ¿Loca? No, solo cosas de MS. – rcdmk

Respuesta

10

Usted querrá utilizar el formato de fecha de SQL: '# # 2011-12-16'

13

Porque donde cláusulas utilizan

columnName = #mm/dd/yyyy# 
4

uso del yeso para DATETIME función, CDATE(), que se honrar la configuración regional de la máquina. Dicho esto, sigue siendo una buena idea usar un formato de fecha no ambiguo y el formato ISO 8601 es bueno.

También tenga en cuenta que Access no tiene un tipo de datos Fecha: su único tipo de datos temporal es DATETIME y, como su nombre indica, siempre tiene un elemento de tiempo exacta como Un segundo gránulo de tiempo, incluso si ese tiempo pasa ser medianoche Por lo tanto, es una buena idea incluir siempre un valor de tiempo en un segundo gránulo de tiempo en todos los literales DATETIME, p. Ej.

WHERE Meetings.MDate = CDATE('2011-12-16 00:00:00'); 

Otra de las ventajas de lo anterior es que la interfaz de usuario de acceso no intentará volver a formatear el DATETIME literal, ya que se lleva a cabo como una cadena.

Cuestiones relacionadas