我正在使用的SQL Server数据库有一个存储为整数的字段,但是它是一个日期。当前它显示20191012
。我尝试了以下内容,似乎可以将其转换,但我想以10/12/2019格式显示。谢谢。
CONVERT(DATE,CONVERT(VARCHAR(20),EFFDAT)) AS DATE_EFF
答案 0 :(得分:1)
您首先需要将 number 20191012
转换为日期:
SELECT DATEFROMPARTS(
20191012 / 10000,
20191012 % 10000 / 100,
20191012 % 100
)
-- 2019-10-12 (DATE)
然后FORMAT
:
SELECT FORMAT(DATEFROMPARTS(
20191012 / 10000,
20191012 % 10000 / 100,
20191012 % 100
), 'MM/dd/yyyy')
-- 10/12/2019 (NVARCHAR)
更简单的方法是将数字转换为字符串并执行几个SUBSTRING()
。
答案 1 :(得分:0)
DECLARE @myint int = 20191012
SELECT CAST(CAST(@myint as char(8)) as date) AS [theDate]
SELECT CONVERT(char(10), (CAST(CAST(@myint as char(10)) as date)), 101) AS [theDateStyleString]
是一种方式,其中第一个查询将数据简单地转换为日期数据类型,第二个查询另外转换为MM / DD / YYYY格式的字符串。但是请理解,转换为字符串与保留日期数据类型并不相同,因为日期函数和比较(>,<等)在字符串上无法正常工作。
这将产生输出:
theDate
----------
2019-10-12
theDateStyleString
------------
10/12/2019