2010-11-02 14 views
5

¿Podemos crear una fecha usando SQL Server 2005?SQL Server create date

Ejemplo si tengo año = 2010, mes = 11 y día = 2, ¿cómo puedo convertirlo o crearlo para fechar?

a continuación es si lo escribimos en javascript

var date = new Date(2010, 10, 2, 0, 0, 0, 0); 

y esto es con Oracle

SELECT TO_DATE('2010-11-02', 'YYYY-MM-DD') FROM DUAL 

Gracias

Respuesta

3

Si está trabajando con cadenas y desea convertir a un tipo de datos de fecha y hora, es mejor trabajar con cadenas que se pueden convertir sin ambigüedad a la fecha. Los siguientes formatos de todo se pueden convertir en valores de fecha y hora por SQL (ya sea a través de CONVERT, o dejar que SQL Server hacer la conversión implícitamente) sin ninguna ambigüedad:

'20101102' 

'2010-11-02T10:59:59' 

'2010-11-02T10:59:59.997' 

En todos los formatos anteriores, los componentes de la fecha están dispuestos como Año de 4 dígitos, luego mes, luego día. Otros formatos que parecen trivialmente similares (por ejemplo, '2010-11-02') se pueden convertir a valores diferentes, dependiendo de la configuración de idioma de su conexión (pero la respuesta de Dogget sigue siendo válida, porque la está utilizando en una expresión literal de ODBC, que está bien definida, rodeándola con los caracteres {d })

+0

Lo sentimos, estás equivocado: 'xxxx-xx-xx' por defecto siempre se amenaza como' aaaa-MM-dd', no como 'aaaa-dd-MM':' select cast ('2010-11-02' como datetime) ' – abatishchev

+0

@abatishchev -' set language 'british english' select cast ('2010-11-02' como datetime) '- result: 2010-02-11 00: 00: 00.000 –

+0

@abatishchev - y para demostrar que es obténgalo mal en la entrada, no en la salida - 'set language 'british english' select DATEPART (month, cast ('2010-11-02' como datetime))' returns 2 –

3

Usted puede hacer SELECT {d '2010-11-02'} tienen que utilizar este formato exacto aunque

0

select convert(datetime, convert(char(8), 20101102))

0

Puede usar select convert(datetime, '11-11-2010') para convertir a fecha y hora.

+0

Ese formato es ambiguo: según la configuración del idioma, SQL Server podría interpretar esa cadena como MM-DD-YYYY o DD-MM-YYYY. –

+0

Oh.Gracias. No lo sabía. – pavanred

0

Puede simplemente usar set @datevar='20101102';. Este idioma es neutral y se convertirá implícitamente.

1

Especifique el estilo en el argumento para la función de conversión. Consulte la ayuda msdn en convert para los diferentes valores.

select convert(datetime, '2010-11-02', 120) 
... 
2010-11-02 00:00:00.000 
Cuestiones relacionadas