我正在使用SQL Server和一个包含DOB [出生日期]列的表。
我在表格中保存了一个与该列相关的值,即=' 1988年5月5日凌晨12:00 ',但我需要' 5月5 1900 12:00 AM '当我选择列时。
我有这个基本查询:
SELECT CAST(dbo.contact.dob AS VARCHAR) AS DOBFROM dbo.contact
结果为May 5 1988 12:00AM
任何帮助?
答案 0 :(得分:1)
一个简单的日期数学:
select dateadd(year, -datediff(year, '19000101', getdate()), getdate())
(其中getdate()
代表您的表格列。)
但是,闰年可能会出现问题。
答案 1 :(得分:1)
我希望我可以帮助你,我想你需要的是:
SELECT DATEADD(YEAR, (1900-(DATEPART(YEAR, dbo.contact.dob))), dbo.contact.dob ) AS DOB FROM dbo.contact
答案 2 :(得分:1)
如果您要更换自定义年份,那么这可能会对您有所帮助。此处GETDATE()
是您的datecolumn
。
DECLARE @CustomYear = '1900'
SELECT REPLACE(CAST(GETDATE() AS VARCHAR(MAX)),DATEPART(YEAR,GETDATE()),@CustomYear)
这给我输出为,
1900年3月17日上午4:12
答案 3 :(得分:0)
尝试添加2年,如
SELECT CAST(DATEADD(year,2,dbo.contact.dob) AS VARCHAR) AS DOB
FROM dbo.contact
这将增加你的年数,所以你将获得1988年5月5日12:00 AM - >添加了2年,比如May 5 1990 12:00 AM