You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中执行date <= datetime比较时的行为机制问询

SQL Server中date与datetime比较的行为解析

当执行date <= datetime这类跨数据类型的日期比较操作时,SQL Server会按照数据类型优先级规则处理:

  • datetime类型的优先级高于date类型,因此会自动将date类型的数值转换为datetime类型,再执行比较。
  • 转换时,date类型的日期会被补全时间部分为00:00:00.000,比如date '2024-05-20'会被转换为datetime '2024-05-20 00:00:00.000'。

举个实际验证的例子:

DECLARE @myDate date = '2024-05-20';
DECLARE @myDatetime datetime = '2024-05-20 14:30:00.000';
SELECT CASE WHEN @myDate <= @myDatetime THEN '成立' ELSE '不成立' END AS 比较结果;

执行后会返回成立,因为@myDate被转成了2024-05-20 00:00:00.000,显然小于@myDatetime的时间值。

另外需要明确:

  • 不管使用<=、>=还是其他比较运算符,转换规则完全一致——始终是低优先级的date类型向高优先级的datetime类型转换,不会将datetime转为date类型。

内容的提问来源于stack exchange,提问作者Jens Wagemaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:25:17