У меня есть устаревшая база данных SQL Server 2000, у которой есть один столбец с датой, которая хранится как varchar вместо даты и времени по любой причине. Я хочу сделать представление против этих данных и использовать поле datetime вместо varchar, чтобы упростить создание отчета в поле. Хорошей новостью является то, что значения значений выглядят так, как будто они должны быть приведены непосредственно в дату и время.Могу ли я получить список строк с значениями varchar, которые не могут быть использованы для datetime?
Конечно, по-видимому, есть поля, которые были введены таким образом, что они не могут быть использованы для datetime. Просто для ясности, вот как таблица может выглядеть:
CREATE TABLE dbo.user
(
...
birthdate varchar(10)
...
)
И взгляд может выглядеть следующим образом:
CREATE VIEW dbo.UserView
AS
SELECT ...
CAST(u.birthdate AS datetime) AS birthdate
...
FROM user u
WHERE ...
Есть ли способ, я могу:
- Получить список всех строк, в которых дата рождения не может быть перенесена в дату и время, если я смогу ее восстановить?
- В тех случаях, когда я не могу восстановить значение, сделайте значение отображаемым как NULL или, возможно, даже что-то, что, очевидно, не фактическая дата рождения пользователя?
Это небольшая вещь, но хорошая точка на! = 1, а не = 0. В то время как эта конкретная функция всегда возвращает 1 или 0, многие функции возвращают NULL для NULL-входов, и это хорошая привычка быть в специально проверке на результат успеха. –
+1 за избиение меня до запроса И для комментария Джоэла. –
@Joel Coehoorn: NULL = 0 тоже не так, поэтому неважно – wqw