如何在SQL Server 2016中格式化日期
我想将日期格式化为如何在SQL Server 2016中格式化日期,sql,sql-server,Sql,Sql Server,我想将日期格式化为ddmmyyyy。我使用的是SQL Server 2016,我发现下面这行代码似乎可以完成这项工作,但实际上不行 这是我使用的代码 DECLARE @ChangedDate as date SET @ChangedDate = CONVERT(DATE, GETDATE()) SET @ChangedDate = REPLACE(CONVERT(CHAR(10), @ChangedDate, 103), '-','') 保存文档时的结果仍然是“2015-05-02”,而不是
ddmmyyyy
。我使用的是SQL Server 2016,我发现下面这行代码似乎可以完成这项工作,但实际上不行
这是我使用的代码
DECLARE @ChangedDate as date
SET @ChangedDate = CONVERT(DATE, GETDATE())
SET @ChangedDate = REPLACE(CONVERT(CHAR(10), @ChangedDate, 103), '-','')
保存文档时的结果仍然是“2015-05-02”,而不是我想要的“02052015”
这里怎么了
这里怎么了
它是由隐式转换引起的:
DECLARE @ChangedDate as date -- date NULL
SET @ChangedDate = CONVERT(DATE, GETDATE()) -- date, initialization
SET @ChangedDate = REPLACE(CONVERT(CHAR(10), @ChangedDate, 103), '-','')
-- string converted to date
如果要将其视为字符串,请不要将其分配给date
变量
DECLARE @ChangedDate as date = GETDATE()
SELECT REPLACE(CONVERT(CHAR(10), @ChangedDate, 103), '/','');
-- 02052016
您可以立即声明和分配变量:
DECLARE @ChangedDate as date = GETDATE();
DECLARE @ChangedDate2 VARCHAR(8)=REPLACE(CONVERT(CHAR(10), @ChangedDate,103),'/','');
SELECT @ChangedDate2;
正确的方法是在应用层中以日期和格式返回它 这里怎么了 它是由隐式转换引起的:
DECLARE @ChangedDate as date -- date NULL
SET @ChangedDate = CONVERT(DATE, GETDATE()) -- date, initialization
SET @ChangedDate = REPLACE(CONVERT(CHAR(10), @ChangedDate, 103), '-','')
-- string converted to date
如果要将其视为字符串,请不要将其分配给date
变量
DECLARE @ChangedDate as date = GETDATE()
SELECT REPLACE(CONVERT(CHAR(10), @ChangedDate, 103), '/','');
-- 02052016
您可以立即声明和分配变量:
DECLARE @ChangedDate as date = GETDATE();
DECLARE @ChangedDate2 VARCHAR(8)=REPLACE(CONVERT(CHAR(10), @ChangedDate,103),'/','');
SELECT @ChangedDate2;
正确的方法是将其作为日期和格式返回到应用程序层。只需使用: 输出: 02052016 (注意:
mm
代表分钟
,而mm
代表月
)只需使用:
输出:
02052016
(注意:mm
表示分钟
,而mm
表示月
)