Я знаю, что существует функция, называемая isdate() для проверки столбцов datetime, но она работает только для типов smalldatetime и datetime. Вопрос: существует ли аналогичный способ проверки нового типа данных datetime2 в SQL Server 2008 и 2012?Есть ли функция, подобная isdate() для datetime2?
ответ
В SQL Server 2012 можно использовать TRY_CONVERT
:
SELECT TRY_CONVERT(DATETIME2, '2012-02-02 13:42:55.2323623'),
TRY_CONVERT(DATETIME2, '2012-02-31 13:42:55.2323623');
Результаты:
2012-02-02 13:42:55.2323623 NULL
Или TRY_PARSE
: (. Те же результаты)
SELECT TRY_PARSE('2012-02-02 13:42:55.2323623' AS DATETIME2),
TRY_PARSE('2012-02-31 13:42:55.2323623' AS DATETIME2);
Жаль, что я не умный ответ для вас на < 2012. Можно, я думаю, сказать
SELECT ISDATE(LEFT('2012-02-02 13:42:55.2323623', 23);
Но что чувствует себя грязным.
TRY_CONVERT
documentation on MSDN
TRY_PARSE
documentation on MSDN
хороший один ................ –
Умный ответ! Мне это очень нравится! Другой вопрос о datetime2 в sql server 2008, есть ли способ проверить действительную дату, когда значение похоже на «1 января 1753 года»? Использование этой команды приведет к недействительной дате SELECT ISDATE (LEFT ('2012-02-02 13: 42: 55.2323623', 23)); – Vladimir
@ Владыка жаль, что я только что заметил ваш вопрос. Является ли это академическим или у вас действительно есть даты <1753? –
- 1. Есть ли подобная функция в Excel?
- 2. Есть ли функция, подобная xrange в Lua?
- 3. Есть ли Java classpath-подобная функция для серверного Javascript?
- 4. Есть ли подобная Rawblock функция для docx Writers?
- 5. Есть ли библиотека, подобная LitJSON для java?
- 6. Есть ли подобная тестовая библиотека для Python
- 7. Есть ли jQuery-подобная библиотека для Flex?
- 8. Есть ли библиотека, подобная guava для C++?
- 9. Есть ли ORM-подобная обертка для memcached
- 10. Есть ли библиотека, подобная RPX для Android?
- 11. Есть ли функция повторения в CoffeeScript, подобная NumPy?
- 12. Есть ли функция, подобная AVERAGEX, но рассчитывается вместо усреднения сумм?
- 13. Есть ли функция в API Windows, подобная ftruncate на POSIX?
- 14. Есть ли grep-подобная функция в pry-консоли?
- 15. Есть функция, подобная array_unique() в jQuery?
- 16. Есть ли функция, подобная функции php function() в JavaScript/jQuery?
- 17. Есть ли функция, подобная prototype.toArray в ванильном JavaScript?
- 18. Есть ли подобная SQL-функция в скрипте Google Apps?
- 19. IsDate функция проверки данных VBA
- 20. Функция, подобная диапазону для поплавков
- 21. jQuery JavaScript есть функция, подобная parseInt для Boolean
- 22. ??? подобная функция в Scala
- 23. SQL-функция для извлечения времени из Datetime2
- 24. Есть ли причина не использовать DateTime2?
- 25. Есть ли библиотека golang, подобная конструкции Python?
- 26. Пользовательская функция, подобная squeeze()
- 27. Есть ли подобная команда для 'struct', аналогичная 'include' для 'sig'?
- 28. Есть ли подобная библиотека для PixTools для MAC?
- 29. «возможно» -подобная функция для Bool и List?
- 30. Функция isdate в компоненте ssis, производном
строго говоря IsDate() не проверяет даты-столбцы; он проверяет, может ли выражение анализироваться как дата-время. После того, как это в колонке, это немного поздно! –
@MitchWheat, это хороший момент. Кажется более вероятным проверить либо (a) даты, которые были неправильно сохранены в столбце varchar, либо (b) входные параметры, имеющие неправильный тип данных. –
Я хотел бы проверить ввод с листа Excel, который имеет некоторые столбцы даты во временную таблицу. – Vladimir