Как преобразовать datetime в строку в T-SQL



Я удивлен, что не могу найти этот вопрос здесь уже.



У меня есть дата и время VAR и я хочу, чтобы преобразовать его в строку, так что я могу добавить его в другую строку. Я хочу его в формате, который может быть легко преобразован обратно в дату времени.



Как я могу это сделать?



(Я хочу дату и время.)

1665   8  

8 ответов:

следующий запрос получит текущую дату и время и преобразует в строку. со следующим форматом
yyyy-mm-dd hh:mm:ss(24h)

SELECT convert(varchar(25), getdate(), 120) 

есть много различных способов convert a datetime в строку. Вот один из способов:

SELECT convert(varchar(25), getdate(), 121)  – yyyy-mm-dd hh:mm:ss.mmm

посмотреть демо

вот сайт, который имеет список всех преобразований:

как форматировать дату и время в SQL Server

можно использовать convert оператор в Microsoft SQL Server для преобразования даты в строку. Примером используемого синтаксиса может быть:

SELECT convert(varchar(20), getdate(), 120)

выше будет возвращена текущая дата и время в строке с форматом YYYY-MM-DD HH:MM:SS в 24 час часы.

вы можете изменить число в конце инструкции на один из многих, которые изменят формат возвращаемых строк. Список этих кодов можно найти на MSDN в приведение и преобразование справочный раздел.

есть 3 различных метода в зависимости от того, что я мое требование и какую версию я использую.

вот методы..

1) Использование Convert

DECLARE @DateTime DATETIME = GETDATE();
--Using Convert
SELECT
    CONVERT(NVARCHAR, @DateTime,120) AS 'myDateTime'
    ,CONVERT(NVARCHAR(10), @DateTime, 120) AS 'myDate'
    ,RIGHT(CONVERT(NVARCHAR, @DateTime, 120),8) AS 'myTime'

2) Использование Cast (SQL Server 2008 и выше)

SELECT
    CAST(@DateTime AS DATETIME2) AS 'myDateTime'
    ,CAST(@DateTime AS DATETIME2(3)) AS 'myDateTimeWithPrecision'
    ,CAST(@DateTime AS DATE) AS 'myDate'
    ,CAST(@DateTime AS TIME) AS 'myTime'
    ,CAST(@DateTime AS TIME(3)) AS 'myTimeWithPrecision'

3) Использование символьного типа данных фиксированной длины

DECLARE @myDateTime NVARCHAR(20) = CONVERT(NVARCHAR, @DateTime, 120);
DECLARE @myDate NVARCHAR(10) = CONVERT(NVARCHAR, @DateTime, 120);

SELECT
    @myDateTime AS 'myDateTime'
    ,@myDate AS 'myDate'

в дополнение к CAST и CONVERT функции в предыдущих ответах, если вы используете SQL Server 2012 и выше вы используете

Проверьте приведение и преобразование синтаксиса t-sql:

http://msdn.microsoft.com/en-us/library/ms187928.aspx

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

DECLARE @myDateTime DATETIME
SET @myDateTime = '2013-02-02'

-- Convert to string now
SELECT LEFT(CONVERT(VARCHAR, @myDateTime, 120), 10)
SELECT CONVERT(varchar, @datetime, 103) --for UK Date format 'DD/MM/YYYY'

101-US-MM/DD / YYYY

108-Time-HH: MI: SS

112-дата-ГГГГММДД

121-ODBC-YYYY-MM-DD HH:MI:SS.ФФФ

20-ODBC-YYYY-MM-DD HH: MI: SS

Comments

    Ничего не найдено.