Quiero insertar un datetime
valor en una tabla (SQL Server) usando la consulta sql a continuación
insert into table1(approvaldate)values(18-06-12 10:34:09 AM);
Pero recibo este mensaje de error. Incorrect syntax near '10'.
Lo intenté con las comillas
insert into table1(approvaldate)values('18-06-12 10:34:09 AM');
Me sale este mensaje de error Cannot convert varchar to datetime
Amablemente ayuda! Gracias.
sql
sql-server-2008
datetime
Shee
fuente
fuente
5
significa?YYYYMMDD HH:MM:SS
(en el formato de 24 horas, el formato mundial, cualquiera que no sea EE. UU. Usa esto, no solo el ejército ...) sin los guiones, funciona, incluso para elBritish
idioma.YYYY-MM-DD HH:MM:SS
Sin embargo, si usa , falla; en ese caso (con los guiones), debe separar la fecha y la hora con unT
literal.SET DATEFORMAT
declaración . Esta es la configuración para una conexión individual, pero la configuración se puede especificar en todo el servidor. También puede especificarSET LANGUAGE
controlar cosas como qué carácter se usa para la raíz y tal, y el formato de fecha heredará de eso (nuevamente, en el servidor o en los niveles de conexión). Es solo que el valor predeterminado es inglés de EE. UU. Y mdy es el formato de EE. UU. Sin embargo, ymd con fechas de 4 años siempre funciona.Una opción más independiente del idioma para los literales de cadena es el formato estándar internacional ISO 8601 "AAAA-MM-DDThh: mm: ss". Utilicé la consulta SQL a continuación para probar el formato, y de hecho funciona en todos los lenguajes SQL en sys.syslanguages :
De acuerdo con la sección Formatos de fecha y hora literales de cadena en Microsoft TechNet, el formato de fecha estándar de ANSI SQL estándar "AAAA-MM-DD hh: mm: ss" se supone que es "multilingüe". Sin embargo, con la misma consulta, el formato ANSI no funciona en todos los lenguajes SQL.
Por ejemplo, en danés, tendrá muchos errores como los siguientes:
Si desea crear una consulta en C # para ejecutar en SQL Server, y necesita pasar una fecha en el formato ISO 8601, use el especificador de formato "s" ordenable :
fuente
YYYYMMDD
para la fecha solamente, y, o bienYYYY-MM-DDThh:mm:ss
(con guiones, y sí, unaT
entre la fecha y la porción de tiempo!) OYYYYMMDD HH:MM:SS
(sin guiones, sin separación literales) para ser verdaderamente independiente del lenguaje ...El estudio de gestión crea scripts como:
fuente
necesitas agregarlo como
fuente
No es necesario usar convertir. Simplemente enumérelo como una fecha citada en formato ISO 8601.
Al igual que:
El separador debe ser a
/
y debe estar rodeado de'
comillas simples .fuente
Si está almacenando valores a través de cualquier lenguaje de programación
Aquí hay un ejemplo en C #
Para almacenar la fecha, primero debe convertirla y luego almacenarla
FooDate es una variable de fecha y hora que contiene su fecha en su formato.
fuente
Me encuentro con un problema más genérico: obtener formatos de fecha y hora diferentes (y no necesariamente conocidos) e insertarlos en la columna de fecha y hora. Lo resolví usando esta declaración, que finalmente se convirtió en una función escalar (relevante para el estilo de fecha canónico, estadounidense, ANSI y británico \ franch de ODBC, se puede ampliar):
fuente