您好,我写了一个查询来提取创建日期,我希望输出为YYYYMM。但是,数据库中的现有格式返回YYMM。我如何进行转换?我试图运行下面的代码,它返回一条错误消息,提示我缺少表达式。
SELECT CONVERT(VARCHAR(6,[CREATED_DATE], 120) as 'CREATED_DATE'
FROM SGTEL10.B$GC_NETELEM
WHERE IPID IN (4001702, 4006023, 4320791);
答案 0 :(得分:1)
尝试使用112
(即6个字符宽)的格式掩码varchar(6)
:
SELECT CONVERT(VARCHAR(6), GETDATE(), 112);
这将输出:
201904
您的完整更新查询:
SELECT CONVERT(VARCHAR(6),[CREATED_DATE], 112) AS [CREATED_DATE]
FROM SGTEL10.B$GC_NETELEM
WHERE IPID IN (4001702, 4006023, 4320791);
Tech on the Net是我最喜欢的参考,用于查找SQL Server CONVERT
格式的掩码。
答案 1 :(得分:1)
SQL Server:使用FORMAT
函数设置日期格式:
SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyyMM')
-- 201904
PL / SQL:使用TO_CHAR
函数:
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMM') FROM DUAL
-- 201904
答案 2 :(得分:0)
SELECT convert(nvarchar(10),datepart(year,getdate()))+''+ convert(nvarchar(10),datepart(month,getdate()))