我有一个 sql 查询,上面写着:
SELECT * FROM t_coun_student_sign_1018954616644580 signStu WHERE signStu.is_deleted = 0 AND signStu.student_wid = 1000363408 and signStu.attendance_date >= "2019-12-26 13:00:00.0"
该列attendance_date
是一种date
类型,并且 sql 结果不包含attendance_date = 2019-12-26
. 所以我认为它2019-12-26 13:00:00.0
不会转换为date
类似2019-12-26
.
但是attendance_date
也是一个索引并且sql查询可以使用该索引。所以如果2019-12-26 00:00:00.0
没有转换为date
类型,我怎么能做到呢?
我想知道的是2019-12-26 00:00:00.0
要转换成哪种类型来比较attendance_date
,或者mysql
当date
, datetime
,timeStamp
类型与yyyy-MM-dd HH:mm:ss
模式字符串格式比较时做什么。
我所知道的“2019-12-26 00:00:00.0”是转换为哪种类型与出勤日期进行比较,或者当日期日期时间时间戳类型与'yyyy-MM-dd HH:mm:ss'比较时mysql会做什么模式串
当操作数在比较操作中具有不同但兼容的数据类型时,它们将转换为相同的数据类型,以保证不会发生数据丢失或更改。
因此DATE
,DATETIME
在这种情况下,类型值被转换为类型,而不是向后转换(转换'2019-12-26 13:00:00.0'
为DATE
将改变值)。
要获得您需要的结果(文字真的是参数吗?)您可以将文字DATA
显式转换为类型:
and signStu.attendance_date >= DATE('2019-12-26 13:00:00.0')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句