SQL中同一查询内是否可以多次使用Dateadd函数?

SQL 多场景 DATEADD 函数使用问题解答
同一SQL查询语句中支持不限次数调用DATEADD函数,你描述的差异化交易时间计算场景完全可以通过多次调用该函数实现。
常规实现方案是搭配CASE WHEN分支判断逻辑,针对不同交易类型对应不同的DATEADD偏移规则,参考示例代码如下:
-- 示例适用场景:交易表按类型计算延后处理时间 SELECT 交易ID, 交易类型, 交易发生时间, CASE WHEN 交易类型 = '薪资类' THEN DATEADD(MONTH, 1, 交易发生时间) WHEN 交易类型 = '水电费缴纳' THEN DATEADD(DAY, 5, 交易发生时间) -- 可根据业务需求新增任意多个分支,每个分支单独调用DATEADD设置不同规则 ELSE DATEADD(DAY, 1, 交易发生时间) END AS 实际处理时间 FROM 交易记录表;
补充注意事项:
- 不同数据库的时间偏移函数语法略有差异,例如MySQL使用
DATE_ADD函数,偏移单位需要加INTERVAL关键字,示例为DATE_ADD(交易发生时间, INTERVAL 1 MONTH),使用前可对应你所用的数据库版本确认基础语法即可。 DATEADD函数可在SELECT、WHERE、ORDER BY等所有支持函数调用的查询子句中调用,无调用次数限制,只要符合业务逻辑就可以随意叠加使用。
内容的提问来源于stack exchange,提问作者Sabina Gheorghe
相关产品推荐
相关产品推荐

