Sé que hay una función llamada isdate() para validar las columnas de fecha y hora, pero solo funciona para los tipos smalldatetime y datetime. La pregunta es: ¿existe alguna forma similar de validar el nuevo tipo de datos datetime2 en el servidor sql 2008 y 2012?¿Hay una función como isdate() para datetime2?
Respuesta
En SQL Server 2012, puede utilizar TRY_CONVERT
:
SELECT TRY_CONVERT(DATETIME2, '2012-02-02 13:42:55.2323623'),
TRY_CONVERT(DATETIME2, '2012-02-31 13:42:55.2323623');
Resultados:
2012-02-02 13:42:55.2323623 NULL
O TRY_PARSE
: (. Los mismos resultados)
SELECT TRY_PARSE('2012-02-02 13:42:55.2323623' AS DATETIME2),
TRY_PARSE('2012-02-31 13:42:55.2323623' AS DATETIME2);
Lo siento que no tengo una respuesta inteligente para usted para < 2012. Podría, supongo, por ejemplo
SELECT ISDATE(LEFT('2012-02-02 13:42:55.2323623', 23);
Pero eso se siente sucio.
TRY_CONVERT
documentation on MSDN
TRY_PARSE
documentation on MSDN
nice one ................ –
¡Respuesta inteligente! ¡Me gusto mucho! Otra pregunta sobre datetime2 en sql server 2008, ¿hay alguna manera de verificar la fecha válida cuando el valor es algo así como antes del "1 de enero de 1753"? El uso de este comando arrojaría una fecha no válida SELECT ISDATE (IZQUIERDA ('2012-02-02 13: 42: 55.2323623', 23)); – Vladimir
@Vladimir lo siento, acabo de ver su pregunta ahora. ¿Es académico o realmente tienes fechas <1753? –
- 1. La función IsDate en SQL evalúa las fechas inválidas como válidas
- 2. ¿Hay una función como _compile_select o get_compiled_select()?
- 3. cómo emitir datetime2 como fecha y hora
- 4. SQLCLR y DateTime2
- 5. Escribiendo un equivalente IsDate() en C#?
- 6. ¿Hay una función haskell para las fechas?
- 7. ¿Qué es datetime2?
- 8. ¿Hay alguna función como contiene desde Java para PHP?
- 9. conversión datetime2 en EF4
- 10. ¿Hay una función sleep() para Android NDK?
- 11. ¿Hay alguna función opencv como "cvHoughCircles()" para la detección cuadrada?
- 12. hay alguna función como string.isnullorempty() en javascript
- 13. ¿Hay una función MAKELONGLONG?
- 14. ¿Hay una extensión como Tamperdata para Chrome?
- 15. En Lua, ¿hay alguna función que, dada una función, devuelva su nombre como una cadena?
- 16. ¿Hay una función en java para obtener una media móvil?
- 17. Hay una diferencia entre (función() {...}()); y (función() {...})() ;?
- 18. ¿Hay una función hash circular?
- 19. ¿Hay una función Perl para convertir una cadena en una expresión regular para usar esa cadena como patrón?
- 20. ¿Hay una función equivalente de JavaScript o Jquery para dormir?
- 21. datetime2 y ProviderManifestToken en Entity Framework
- 22. ¿Hay una función estándar para iterar sobre las clases base?
- 23. ¿De qué maneras hay para editar una función en R?
- 24. ¿Hay una función cmake para actualizar los archivos .pot?
- 25. ¿Hay una función hash "suficientemente buena" para el programador promedio?
- 26. ¿El número después de DateTime2 es para fines de nanosegundos?
- 27. ¿Hay una función bidireccional en Guava?
- 28. ¿Hay una función `printk()` que admita `va_list`?
- 29. ¿hay alguna función como php explotar en jquery?
- 30. Java: ¿hay una función de mapa?
estrictamente hablando ISDATE() no valida columnas de fecha y hora; valida si una expresión se puede analizar como una fecha y hora. ¡Después de que está en una columna, es un poco tarde! –
@MitchWheat ese es un buen punto. Parece más probable validar (a) fechas almacenadas incorrectamente en una columna varchar o (b) parámetros de entrada que son de un tipo de datos incorrecto. –
Me gustaría validar la entrada de una hoja de Excel que tiene algunas columnas de fecha en una tabla temporal. – Vladimir