Проблемы с форматированием значений даты и времени в SQL Server в хранимой процедуре T-SQL - PullRequest
0 голосов
/ 12 мая 2018

У меня есть простая хранимая процедура, в которой я хочу установить 2 переменные, 1 для текущего времени и другую для текущей даты. Они нужны мне в формате hhmm для времени и в формате yyyyMMdd для даты.

Вот код, который у меня есть:

BEGIN
    DECLARE @d AS DATETIME 
    DECLARE @t as TIME

    SET @d = GETDATE()
    SET @t  = SYSDATETIME()

Но все, что я пытался использовать для изменения формата этих двух переменных, мне не помогло. Единственные примеры, которые я нашел в Интернете, - это форматирование значений в обычных запросах.

Может ли кто-нибудь указать мне правильное направление, насколько я должен сделать, чтобы получить эти значения? Заранее спасибо.

1 Ответ

0 голосов
/ 12 мая 2018

Если 2012+, вы можете использовать Format ()

* ** 1003 тысяча два * Пример
DECLARE @d as varchar(8) = format(GetDate(),'yyyyMMdd')
DECLARE @t as varchar(4) = format(SYSDATETIME(),'HHmm')   -- use hh for 12 hour time

Select @d,@t

Returns

(No column name)    (No column name)
20180511            1738

за 2005 год

DECLARE @d as varchar(8) = convert(varchar(10),GetDate(),112)
DECLARE @t as varchar(8) = replace(left(convert(varchar(25),SYSDATETIME(),108),5),':','')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...