Как конвертировать дату и время в SQL Server - PullRequest
4 голосов
/ 20 марта 2012

У меня есть следующие столбцы в таблице:

Signed_In_Date             Signed_Out_Time
11/1/2005 12:00:00 am      11/1/2005 10:27:00PM

Я хотел бы преобразовать их в следующий вывод:

Signed_In_Date      Signed_Out_Time
11/1/2005       10:27:00PM

Есть ли в SQL Server код функции или преобразования, который бы это делал? Спасибо за вашу помощь.

Ответы [ 4 ]

4 голосов
/ 20 марта 2012

Предполагая, что столбцы, на которые вы ссылаетесь, являются DATETIME столбцами, я бы использовал следующий код:

Только дата

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

Только время

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))

Вы можете увидеть запросы в действии / поиграть с ними здесь .

2 голосов
/ 20 марта 2012

Для использования Sign_In_Date

select CONVERT(VARCHAR(10),'11/1/2005 10:27:00PM',108)

Ouput:

11/1/2005 

Для Sing_Out_Time

declare @time time
set @time=cast('11/1/2005 10:27:00PM' as Time)
select convert(varchar(10),@time,100)

Выход:

10:27PM
1 голос
/ 20 марта 2012

Вы можете использовать CONVERT, чтобы изменить формат даты и времени на свой собственный желаемый формат:

SELECT CONVERT(VARCHAR(10),Signed_In_Date,101) as 'Signed_In_Date',
        CONVERT(VARCHAR(10),Signed_Out_Time,108) as 'Signed_Out_Time';

Для получения более подробного формата даты перейдите по этой ссылке:

http://www.sql -сервер-helper.com/tips/date-formats.aspx

1 голос
/ 20 марта 2012

попробуйте это:

select CONVERT(VARCHAR(10),Signed_Out_Time,108)  ,-- 108 is d/M/yyyy if you want mm/dd/yyy you should use 101
CONVERT(VARCHAR(8),Signed_In_Date,103)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...