Нужна помощь в преобразовании DateTime в Sql Server 2005 - PullRequest
0 голосов
/ 20 сентября 2011

Я столкнулся с проблемой в разговоре с DateTime.Мой ввод 22.09.2011, мне нужно конвертировать в 20110922.

Я попробовал нижеприведенный, но не получилось.Выберите CONVERT (VARCHAR (8), «22.09.2011», 112) в качестве DateConv

Ответы [ 3 ]

3 голосов
/ 20 сентября 2011

Итак, вы идете:

SET DATEFORMAT mdy
SELECT CONVERT(VARCHAR(8), CAST('09/22/2011' as DATETIME) , 112) AS DateConv

Если ваш ввод на самом деле является переменной dateTime, как вы сказали (но не показали в своем примере кода), вы можете упростить это до:

SELECT CONVERT(VARCHAR(8), @myDate  , 112) AS DateConv
1 голос
/ 20 сентября 2011

Это поможет:

select year('09/22/2011') * 10000 + month('09/22/2011') * 100 + day('09/22/2011')

0 голосов
/ 20 сентября 2011

Без какой-либо другой информации SQL уже интерпретирует '09 / 22/2011 'как varchar и просто передает данные (игнорируя аргумент стиля CONVERT). Если вы используете следующую строку:

SELECT CONVERT (VARCHAR (8), CAST ('09/22/2011' as DATETIME), 112) as DateConv

он должен работать так, как ожидалось, поскольку тогда он будет рассматривать '09 / 22/2011 'как значение даты. Если бы вы получали дату из столбца в таблице, он уже знал бы тип, и вам не нужно беспокоиться о части выражения CAST, просто используйте имя столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...