Подтвердить что ты не робот

SQL Server конвертирует Varchar в Datetime

У меня такой формат даты: 2011-09-28 18:01:00 (в varchar), и я хочу преобразовать его в datetime, изменяя этот формат 28-09-2011 18:01:00. Как я могу это сделать?

4b9b3361

Ответ 1

SELECT CONVERT(Datetime, '2011-09-28 18:01:00', 120) -- to convert it to Datetime

SELECT CONVERT( VARCHAR(30), @date ,105) -- italian format [28-09-2011 18:01:00]
+ ' ' + SELECT CONVERT( VARCHAR(30), @date ,108 ) -- full date [with time/minutes/sec]

Ответ 2

Подобно этому

DECLARE @date DATETIME
SET @date = '2011-09-28 18:01:00'
select convert(varchar, @date,105) + ' ' + convert(varchar, @date,108)

Ответ 3

этот сайт показывает несколько вариантов форматирования.

Пример:

SELECT CONVERT(VARCHAR(10), GETDATE(), 105) 

Ответ 4

Вы можете использовать разные стили для datetime conversion:

http://www.w3schools.com/sql/func_convert.asp

Это имеет диапазон значений: -

CONVERT(data_type(length),expression,style)

Для значений стиля
Выберите кого-то, что вам нужно, как мне нужно 106.

Ответ 5

Вы можете сделать это таким образом, но это оставляет его как varchar

declare @s varchar(50)

set @s = '2011-09-28 18:01:00'

select convert(varchar, cast(@s as datetime), 105) + RIGHT(@s, 9)

или

select convert(varchar(20), @s, 105)

Ответ 6

Как уже было сказано, datetime не имеет форматного/строкового репрезентативного формата.

Вы можете изменить вывод строки с некоторым форматированием.

Чтобы преобразовать вашу строку в дату и время:

declare @date nvarchar(25) 
set @date = '2011-09-28 18:01:00' 

-- To datetime datatype
SELECT CONVERT(datetime, @date)

дает:

-----------------------
2011-09-28 18:01:00.000

(1 row(s) affected)

Чтобы преобразовать это в нужную строку:

-- To VARCHAR of your desired format
SELECT CONVERT(VARCHAR(10), CONVERT(datetime, @date), 105) +' '+ CONVERT(VARCHAR(8), CONVERT(datetime, @date), 108)

дает:

-------------------
28-09-2011 18:01:00

(1 row(s) affected)

Ответ 7

SELECT CONVERT(VARCHAR(10), GETDATE(), 105) + ' ' + CONVERT(VARCHAR(10), GETDATE(), 108)

Ответ 8

Попробуйте ниже

select Convert(Varchar(50),yourcolumn,103) as Converted_Date from yourtbl