在SQL Server Select语句中将YEAR部分替换为自定义年份

时间:2015-03-17 08:01:09

标签: sql-server datetime select

我正在使用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

任何帮助?

4 个答案:

答案 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

DATEADDDATEPART可以解决问题

答案 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