Ver Mensaje Individual
  #22  
Antiguo 15-04-2013
Avatar de mamcx
mamcx mamcx is online now
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por Al González Ver Mensaje
sino porque todos los motores SQL debieran admitirlo sin protestar, ¿me ayudan por favor a corroborar o refutar esta última afirmación?
Teoricamente si, porque ese formato encaja con el "locale" de USA (en-US) y el formato de 24h. El problema es el separador. Creo que "/" es mas comun que "-" y otros.

------

PD: Segun http://www.postgresql.org/docs/9.1/s...-datetime.html

Cita:
The output format of the date/time types can be set to one of the four styles ISO 8601, SQL (Ingres), traditional POSTGRES (Unix date format), or German. The default is the ISO format. (The SQL standard requires the use of the ISO 8601 format. The name of the "SQL" output format is a historical accident.) Table 8-14 shows examples of each output style. The output of the date and time types is of course only the date or time part in accordance with the given examples.
Código:
ISO	ISO 8601/SQL standard	1997-12-17 07:37:16-08
SQL	traditional style	12/17/1997 07:37:16.00 PST
POSTGRES	original style	Wed Dec 17 07:37:16 1997 PST
German	regional style	17.12.1997 07:37:16.00 PST
Segun ese doc, parece que si es "/" es considerado el estilo "SQL" y si es "-" el ISO.

Con respecto a probar cada estilo en BD, lo que yo hago es que lo defino con comandos como SET DATEFORMAT o su similar. Cuando el motor no tiene algo asi (ej: FoxPro) uso una funcion (ej: Date(2003,1,1) y en el *peor* de los casos el formato de acuerdo al locale de la BD.

El punto que no deje claro antes y que ahora por fin lo logro articular (y que se desprende del principio de la robustes) es que si la cadena de fecha es una "salida" se puede definir el formato que mejor parezca (ya sea el ISO, si es pa pasar entre programas, y el "SQL" para mostrar a humanos) pero en este caso de uso en particular se envia como una "entrada" y por lo tanto, no se puede garantizar que vaya a funcionar, en *todos* los motores. En los motores principales (Sql Server, Postgres, MySql) va a funcionar (ya chequee los docs).


Osea, en resumen... dejalo asi como lo has pensado..
__________________
El malabarista.
Responder Con Cita