我有一个简单的查询,如下所示。我正在尝试将列yyyymmdd格式化为Month,Day,Year格式。怎么办呢?
yyyymmdd返回2015-11-13 00:00:00.000 我希望它能在2015年11月13日返回
SELECT
CONVERT(datetime, yyyymmdd, 101) as 'Date of Data',
cd.[text] as 'Last POS Upload Time Each Day'
FROM MyTable CD
WHERE CD.[Store] = @Store
AND YYYYMMDD between @Beginning_Date AND @Ending_Date
AND [text] <> ''
group by cd.[Store], [text], cd.[yyyymmdd]
order by cd.[store], cd.[yyyymmdd], [text]
答案 0 :(得分:1)
可能有内置功能可以准确返回您正在寻找的内容,但您始终可以选择自行滚动...
SELECT
DATENAME(month, yyyymmdd) + ' ' +
CONVERT(nvarchar(50), DATEPART(day, yyyymmdd)) + ', ' +
CONVERT(nvarchar(50), DATEPART(Year, yyyymmdd)) AS [Your Date In Your Format],
...rest of your query
答案 1 :(得分:0)
你可以试试这个
SELECT DATENAME(MM, yyyymmdd) + RIGHT(CONVERT(VARCHAR(12), yyyymmdd, 107), 9) AS 'Date of Data',
答案 2 :(得分:0)
<强> Sql Fiddle Demo 强>
CREATE TABLE Table1
([MyDate] datetime);
INSERT INTO Table1
([MyDate])
VALUES
('2015-11-13 00:00:00');
SELECT DATENAME(MM, MyDate) + RIGHT(CONVERT(VARCHAR(12), MyDate, 107), 9) AS [Month DD, YYYY]
FROM Table1
答案 3 :(得分:0)
试试这个:
SELECT
DATENAME(MM, '2015-11-13 00:00:00.000')
+ ' ' + RIGHT(CONVERT(VARCHAR(10), '2015-11-13 00:00:00.000', 107), 2)
+ ', ' + RIGHT(CONVERT(VARCHAR(4) , '2015-11-13 00:00:00.000', 107), 9) AS 'FormattedDate'
如果您有任何疑问,请与我联系。