Ответ 1
Попробуйте следующее:
Declare @dt NVARCHAR(20)
Select
@dt = REPLACE(CONVERT(CHAR(15), SalesDate, 106),' ',' - ')
FROM SalesTable
Я использую функцию CONVERT(data_type(length),expression,style)
для изменения формата даты в запросе SELECT.
Объявить @dt nvarchar (20)
Выберите @dt = Преобразовать (nvarchar (20), SalesDate, 113) FROM SalesTable
Мне нужен формат dd-MMM-yyyy (например, '05 -Jul-2013 '), но я не смог найти подходящий номер стиля (например, 113) для этого конкретного формата. Может ли кто-нибудь помочь мне в этом, пожалуйста?
Попробуйте следующее:
Declare @dt NVARCHAR(20)
Select
@dt = REPLACE(CONVERT(CHAR(15), SalesDate, 106),' ',' - ')
FROM SalesTable
select CONVERT(NVARCHAR, SYSDATETIME(), 106) AS [DD-MON-YYYY]
или еще
select REPLACE(CONVERT(NVARCHAR,GETDATE(), 106), ' ', '-')
оба отлично работают
Похоже, что DD-MMM-YYYY поддерживается по умолчанию (по крайней мере, с тире как разделителем). Однако, используя предложение AS, вы должны иметь возможность сделать что-то вроде:
SELECT CONVERT(VARCHAR(11), SYSDATETIME(), 106) AS [DD-MON-YYYY]
Смотрите здесь: http://www.sql-server-helper.com/sql-server-2008/sql-server-2008-date-format.aspx
Я думаю, что это лучший способ сделать это.
REPLACE(CONVERT(NVARCHAR,CAST(WeekEnding AS DATETIME), 106), ' ', '-')
Потому что вам не нужно использовать varchar(11)
или varchar(10)
, что может сделать проблему в будущем.
SELECT Convert(varchar(10),CONVERT(date,'columnname',105),105) as "end";
ИЛИ
SELECT CONVERT(VARCHAR(10), CAST(event_enddate AS DATE), 105) AS [end];
вернет определенную дату в формате "dd-mm-yyyy"
Результат будет таким.
04-07-2016