Php MySQL日期比较返回null
嗨,我有一个关于MySQL的问题,我试图将日期与字符串进行比较。在我的网站上实现之前,我在phpMyAdmin上做手脚,创建正确的SQL查询,其中字符串表示where子句参数 我有一个名为“bookings”的表,其中有一个名为“Check-In”的列,该列的数据类型为Date。一个条目的“登记”日期设置为“2013-12-12”。我计划发布结构和条目的图片,但由于我的起始声誉,我没能发布 我浏览并尝试了StackOverFlow和其他来源上的各种变体,例如:Php MySQL日期比较返回null,php,mysql,Php,Mysql,嗨,我有一个关于MySQL的问题,我试图将日期与字符串进行比较。在我的网站上实现之前,我在phpMyAdmin上做手脚,创建正确的SQL查询,其中字符串表示where子句参数 我有一个名为“bookings”的表,其中有一个名为“Check-In”的列,该列的数据类型为Date。一个条目的“登记”日期设置为“2013-12-12”。我计划发布结构和条目的图片,但由于我的起始声誉,我没能发布 我浏览并尝试了StackOverFlow和其他来源上的各种变体,例如: SELECT * FROM `bo
SELECT * FROM `bookings` WHERE DATE_FORMAT('Check In', '%Y-%m-%d' ) = STR_TO_DATE('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE 'Check In' = STR_TO_DATE('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE 'Check In' = DATE_Format('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE 'Check In' = '2013-12-12'
尽管我有一个日期为2013-12-12的条目,但所有这些结果都返回0。这是我在stackoverflow上发表的第一篇文章,如果有任何不明确的地方,请原谅,但还是要感谢任何试图帮助我的人
“签入”只是字符串值,因此字符串“签入”被转换为“0000-00-00”
要引用列名,请使用“签入”。你能试试这个吗
SELECT * FROM `bookings` WHERE DATE_FORMAT(`Check In`, '%Y-%m-%d' ) = STR_TO_DATE('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE `Check In` = STR_TO_DATE('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE `Check In` = DATE_Format('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE `Check In` = '2013-12-12'
如果你没有用空格命名列,你就不需要引用它,这样你就不会遇到使用错误的引号的问题。是的,你是对的,这是我在创建DB时经常犯的命名约定错误。谢谢,这解决了所有问题。将签入更改为签入,并且工作正常。谢谢
SELECT * FROM `bookings` WHERE DATE_FORMAT(`Check In`, '%Y-%m-%d' ) = STR_TO_DATE('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE `Check In` = STR_TO_DATE('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE `Check In` = DATE_Format('2013-12-12', '%Y-%m-%d')
SELECT * FROM `bookings` WHERE `Check In` = '2013-12-12'