我正在重用其他人代码中的查询逻辑。在它们的冗长且高度不可读的where语句中,有几个实例在比较日期字段并检查它们是否小于零。
即
YEAR(bp.dtGoalDate) <= 1900
AND (po.GoalDate IS NULL OR po.GoalDate < 0)
dtGoalDate和GoalDate是我们数据库中的日期/时间列。这是我不理解的东西,完全正常吗?还是写得不好,需要清理?
答案 0 :(得分:0)
仅需查看实际操作即可。日期0等于1900-01-01
create table t1 (
t datetime
)
insert into t1 values ('2018-01-01');
insert into t1 values (0);
insert into t1 values ('1800-01-01');
SELECT * FROM t1 WHERE t <= 0
输出