Вопрос

У меня есть стол с 800+ записями. В этой таблице у меня есть столбец с названием «Данные» varchar (10) datatype, который содержит даты в dd.mm.yyyy. Формат. Я хочу преобразовать его в небольшое количество.

Я попытался преобразовать его с помощью студии управления предприятием Expression Express, но я получаю эту ошибку:

The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

Как я могу это преобразовать?

Это было полезно?

Решение

Я думаю, что вам нужно будет сделать небольшую строковую манипулирование, чтобы получить это на работу, как я думаю, SQL ожидает «мм.dd.yyyy». Итак, обновите свой стол, чтобы сначала перелипывать месяц и день, затем преобразование должно пройти.

update YourTable
    set Data = SUBSTRING(Data,4,3) + LEFT(Data,3) + RIGHT(Data,4)

Другие советы

Вы можете использовать:
SELECT ID, CAST(VarcharCol As SmallDateTime) as DateTimeCol From Test1
Это вернет таблицу с значениями Varcharol over AllDateTime, затем обновляйте содержимое Varcharlol с новыми значениями.

Если вы не хотите неявное преобразование в Небольшое время, вы должны использовать Конвертировать и аргумент стиль.
dd.mm.yyyy. Формат соответствует стилю 104.
Например :

SELECT CONVERT(smalldatetime, '31.12.2018', 104) AS "Result"

Result
------
2018-12-31 00:00:00
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top