sql-server-2008 - 为什么我要检查 SQL Server 中的日期是否小于 0 或小于 1900 年
问题描述
我正在从其他人的代码中重用我的查询中的逻辑。在冗长且高度不可读的 where 语句中,有几个实例会比较并检查日期字段以查看它们是否小于零。
IE
YEAR(bp.dtGoalDate) <= 1900
AND (po.GoalDate IS NULL OR po.GoalDate < 0)
dtGoalDate 和 GoalDate 是我们数据库中的日期/时间列。这是我不理解并且完全正常的事情,还是写得不好并且需要清理?
解决方案
只是为了看到它的行动。日期 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
输出
推荐阅读
- caffe - 将 .caffemodel 转换为 .pb 文件
- php - 安装phpredis MAC OSX
- python - SyntaxError:无效语法(从 shell 运行 python 代码时)
- linux-kernel - Gentoo 没有规则来制作目标'olddefconfig'
- java - 如何删除 Cloudinary Url 中的版本标签?
- laravel - Laravel 雄辩的分页关系未显示在集合中
- macos - 使用 jar xvf 提取目录中的所有档案?macOS 终端
- android - 完成活动不会重置它
- android - 如何在导航抽屉顶部创建工具栏(Android/kotlin)
- webpack - 为什么当我使用 Vue 的运行时版本时,我的 Vue.js 应用程序无法运行?