【发布时间】:2021-09-19 18:39:48
【问题描述】:
抱歉,如果我的问题不清楚,我是新手!
我的数据可以追溯到 3 年前,如果 InsertDateTime 列中的日期(由日期和时间组成)在最近 364 之内,我希望 364DaysFlag 列返回 1如果 InsertDateTime 超过 364 天,则返回 0。
为了清楚起见,Transaction.tbl.Flag 表是动态/实时的,因此每天都会添加最近的一天,这是我为了让它工作而解开的地方!
以下是我使用的错误代码(运行但不执行我想要的操作),我将其加粗的地方是需要更新的地方。
SELECT TransactionDate, TotalCustomers, [1 as 364DaysFlag], InsertDateTime
INTO Transaction.tbl.Flag
FROM Performance.Sales.Total
请有人建议我如何让它工作?我是否需要使用 IF 函数或其他东西?我需要 DATEADD 和/或 GETDATE 函数吗?我对 SQL 还很陌生,还在学习! :)
【问题讨论】:
-
请提供样本数据和期望的结果。您的示例代码没有意义。 MySQL 中没有
INTO语句(有一个INTO子句,但这不是查询的开始方式)。 -
SELECT TransactionDate, TotalCustomers, InsertDateTime > CURRENT_DATE - INTERVAL 364 DAY AS 364DaysFlag, InsertDateTime ...。当然,不是 SELECT INTO - 通过常用方式检索364DaysFlag列值。 -
@Akina 如何获取它,如果日期在 364 天内,L364D 列返回 1,如果超过 364 天,则返回 0?
-
按原样使用我的 SQL 文本片段。
标签: mysql sql if-statement dateadd getdate