2012-01-11 30 views
5

Tengo esta pregunta desde el comienzo de mi carrera de programación. ¿Hay realmente un formato culturalmente neutral para datetime en el servidor sql para que cuando envíe cadena de consulta del lado del cliente al servidor de base de datos ejecutando sql server 2008 tenga un formato de fecha y hora del sistema diferente, y si la consulta contiene una fecha convertida a una cadena, qué formato no me daría un error.¿Cuál es el formato de fecha neutra cultural para SQL Server?

+3

que sería ISO –

+0

@Soham: ¿No se requeriría también la zona horaria (para la fecha que se envía)? – shahkalpesh

+0

@shahkalpesh - Eso es lo que quiero evitar. –

Respuesta

10

Recomiendo leer el The ultimate guide to the datetime datatypes de Tibor Karaszi.

Si ingresa su fecha/hora en formato no separado o ISO 8601, entonces debería estar bien con cualquier configuración.

Unseparated = 'yyyymmdd hh:mm:ss' 
ISO 8601 = 'yyyy-mm-ddThh:mm:ss' 

actualización (de comentarios):

Si es necesario introducir una fecha única (sin la parte de tiempo), entonces usted tiene que utilizar el formato 'YYYYMMDD', como 'YYYY-MM-DD' no va a funcionar. Vea el artículo vinculado para un ejemplo.

+3

Para los tipos de SQL Server y 'DATETIME', necesita usar' YYYYMMDD' (** sin guiones! ** si necesita DATE solamente - sin tiempo), o el formato que mencionó ('aaaa-mm-ddThh: mm : ss') - ambos funcionan. –

+0

Sí, mencioné ambos. Por lo general, prefiero la versión "sin guiones". Es más conciso. – MicSim

+0

No realmente, no mencionó el formato si solo necesita fecha (sin tiempo). Contrariamente a lo que uno podría llegar a creer, 'YYYY-MM-DD' ** NO ** funcionaría (mientras' YYYYMMDD') lo hace .... –

0

Podría considerar almacenar su fecha/hora en el formato UNIX time.

Cuestiones relacionadas