Before/After 灵活日期的差异(个案)
Before/After Difference for a flexible Date (Case)
我有个小问题。我输出两个日期字段 (yyyy-mm-dd)。日期变化并且是灵活的。并非每个条目都有相同的日期字段。
我把一个日期字段作为一个固定点。如果日期早于日期 4 个月,则输出应为 'V'。如果它在它后面,一个 'N' 应该是输出。
SELECT
a.FIELD1,
b.FIELD2,
c.FIELD3,
d.DATE1, -- YYYY-MM-DD
e.DATE2 -- YYYY-MM-DD
CASE
WHEN e.DATE2 >= d.DATE1 THEN = 'N'
WHEN e.DATE2 < d.DATE1 THEN = 'V' -- >= 4 MONTHS BEFORE
END AS DATE_SIGN
我听说我得到的日期格式有问题。 Datediff 只适用于另一种格式,对吗?
我可以在这样的案例中使用这两个日期吗?
亲切的问候
Stephan,我不确定我是否理解正确,但我想你是在问如何检查 DATE2 是否比 DATE1 早 4 个月以上?
如果是这样,您可以在 SQL 服务器中使用 DATEADD 函数,它类似于
当 DATE2 < DATEADD(MONTH, -4, DATE1) THEN 'V'
在 MySQL 中,DATE_ADD 函数类似,但会是
当日期 2 < DATE_ADD(日期 1,间隔 -4 个月)时 'V'
我有个小问题。我输出两个日期字段 (yyyy-mm-dd)。日期变化并且是灵活的。并非每个条目都有相同的日期字段。
我把一个日期字段作为一个固定点。如果日期早于日期 4 个月,则输出应为 'V'。如果它在它后面,一个 'N' 应该是输出。
SELECT
a.FIELD1,
b.FIELD2,
c.FIELD3,
d.DATE1, -- YYYY-MM-DD
e.DATE2 -- YYYY-MM-DD
CASE
WHEN e.DATE2 >= d.DATE1 THEN = 'N'
WHEN e.DATE2 < d.DATE1 THEN = 'V' -- >= 4 MONTHS BEFORE
END AS DATE_SIGN
我听说我得到的日期格式有问题。 Datediff 只适用于另一种格式,对吗?
我可以在这样的案例中使用这两个日期吗?
亲切的问候
Stephan,我不确定我是否理解正确,但我想你是在问如何检查 DATE2 是否比 DATE1 早 4 个月以上?
如果是这样,您可以在 SQL 服务器中使用 DATEADD 函数,它类似于
当 DATE2 < DATEADD(MONTH, -4, DATE1) THEN 'V'
在 MySQL 中,DATE_ADD 函数类似,但会是
当日期 2 < DATE_ADD(日期 1,间隔 -4 个月)时 'V'