将字符串字符附加到日期计算
Attaching string characters to date calculations
我正在尝试将“*”附加到日期计算的末尾。
Date_of_birth 和 Date_of_Activatiion 具有相同的日期格式 YYYY-MM-DD
ISNULL([date_of_birth],(DATEADD(YEAR,-[age],[date_of_activation]))) [DOB]
此代码的输出将是 [date_of_birth] 或根据人的年龄和产品激活计算出生日期。
如何附加“*”以显示计算出生日期的时间?
这是我的尝试;
ISNULL([date_of_birth],CONCAT(DATEADD(YEAR,-[age],[date_of_activation]),'*','')) [DOB]
错误;
Msg 241, Level 16, State 1, Line 7
Conversion failed when converting date and/or time from character string.
我浏览了一些其他帖子,但我找不到他们在计算日期后附加字符串的情况。
理想情况下,输出应该是这样的; YYYY-MM-DD* 当出生日期为空时。
有什么建议吗?
您可以在 CONCAT()
中使用 ISNULL()
和 case 表达式 :
SELECT CONCAT(ISNULL([date_of_birth], (DATEADD(YEAR,-[age],[date_of_activation]))),
CASE WHEN [date_of_birth] IS NULL THEN '*' END
) AS [DOB]
我正在尝试将“*”附加到日期计算的末尾。
Date_of_birth 和 Date_of_Activatiion 具有相同的日期格式 YYYY-MM-DD
ISNULL([date_of_birth],(DATEADD(YEAR,-[age],[date_of_activation]))) [DOB]
此代码的输出将是 [date_of_birth] 或根据人的年龄和产品激活计算出生日期。
如何附加“*”以显示计算出生日期的时间?
这是我的尝试;
ISNULL([date_of_birth],CONCAT(DATEADD(YEAR,-[age],[date_of_activation]),'*','')) [DOB]
错误;
Msg 241, Level 16, State 1, Line 7
Conversion failed when converting date and/or time from character string.
我浏览了一些其他帖子,但我找不到他们在计算日期后附加字符串的情况。
理想情况下,输出应该是这样的; YYYY-MM-DD* 当出生日期为空时。
有什么建议吗?
您可以在 CONCAT()
中使用 ISNULL()
和 case 表达式 :
SELECT CONCAT(ISNULL([date_of_birth], (DATEADD(YEAR,-[age],[date_of_activation]))),
CASE WHEN [date_of_birth] IS NULL THEN '*' END
) AS [DOB]