在 SQL Server Select 语句中用自定义年份替换 YEAR 部分
Replace YEAR part with custom year in SQL Server Select statement
我正在使用 SQL 服务器和一个包含 DOB [出生日期] 列的 table。
我在 table 中针对该列保存了一个值,即 = 'May 5 1988 12:00AM',但我需要 'May 5 1900 12:00AM'当我select列.
我有这个基本查询:
SELECT CAST(dbo.contact.dob AS VARCHAR) AS DOBFROM dbo.contact
结果是May 5 1988 12:00AM
有什么帮助吗?
尝试像
添加 2 年
SELECT CAST(DATEADD(year,2,dbo.contact.dob) AS VARCHAR) AS DOB
FROM dbo.contact
这会增加你的年数,所以你会得到 1988 年 5 月 5 日 12:00AM -> 像 1990 年 5 月 5 日一样增加 2 年 12:00AM
一个简单的日期数学:
select dateadd(year, -datediff(year, '19000101', getdate()), getdate())
(其中 getdate()
代表您的 table 的专栏)。
不过,您可能对闰年有疑问。
希望能帮到你,我想你需要的是:
SELECT DATEADD(YEAR, (1900-(DATEPART(YEAR, dbo.contact.dob))), dbo.contact.dob ) AS DOB FROM dbo.contact
如果您要替换自定义年份,那么这可能会对您有所帮助。这里 GETDATE()
是你的 datecolumn
.
DECLARE @CustomYear = '1900'
SELECT REPLACE(CAST(GETDATE() AS VARCHAR(MAX)),DATEPART(YEAR,GETDATE()),@CustomYear)
这给了我输出,
Mar 17 1900 4:12AM
我正在使用 SQL 服务器和一个包含 DOB [出生日期] 列的 table。
我在 table 中针对该列保存了一个值,即 = 'May 5 1988 12:00AM',但我需要 'May 5 1900 12:00AM'当我select列.
我有这个基本查询:
SELECT CAST(dbo.contact.dob AS VARCHAR) AS DOBFROM dbo.contact
结果是May 5 1988 12:00AM
有什么帮助吗?
尝试像
添加 2 年SELECT CAST(DATEADD(year,2,dbo.contact.dob) AS VARCHAR) AS DOB
FROM dbo.contact
这会增加你的年数,所以你会得到 1988 年 5 月 5 日 12:00AM -> 像 1990 年 5 月 5 日一样增加 2 年 12:00AM
一个简单的日期数学:
select dateadd(year, -datediff(year, '19000101', getdate()), getdate())
(其中 getdate()
代表您的 table 的专栏)。
不过,您可能对闰年有疑问。
希望能帮到你,我想你需要的是:
SELECT DATEADD(YEAR, (1900-(DATEPART(YEAR, dbo.contact.dob))), dbo.contact.dob ) AS DOB FROM dbo.contact
如果您要替换自定义年份,那么这可能会对您有所帮助。这里 GETDATE()
是你的 datecolumn
.
DECLARE @CustomYear = '1900'
SELECT REPLACE(CAST(GETDATE() AS VARCHAR(MAX)),DATEPART(YEAR,GETDATE()),@CustomYear)
这给了我输出,
Mar 17 1900 4:12AM