php - 表单和数据库之间的日期冲突

标签 php mysql sql

如果用户通过表单($date_booked)提供以下格式的日期:

2012-1-6

与日期(预订日期)进行比较:

2012-01-06

检查它的正确 SQL 方法是什么(使用 phpMyAdmin):

SELECT * FROM room WHERE date_booked LIKE $date_booked

或者 MySQL 不会返回任何内容?

提前致谢。

最佳答案

Assuming PHP from the $variable notation

使用 PHP 中的 date_parse() 函数可以轻松比较两个日期,即使它们在语法上看起来不同:

date_parse('2012-1-6');

array (
  'year' => 2012,
  'month' => 1,
  'day' => 6,
  'hour' => false,
  'minute' => false,
  'second' => false,
  ...
)


date_parse('2012-01-06');

array (
  'year' => 2012,
  'month' => 1,
  'day' => 6,
  'hour' => false,
  'minute' => false,
  'second' => false,
  ...
)  

顺便说一句,您应该考虑将日期/时间信息存储在数据库中的 Unix 时间戳(自 1970 年 1 月 1 日起的秒数)中 - 更容易执行计算。 PHP 有a weath日期/时间函数。

如果您最终将日期和时间存储为 Unix 时间戳,那么您可以使用 PHP 的 strtotime() function :

strtotime — Parse about any English textual datetime description into a Unix timestamp

关于php - 表单和数据库之间的日期冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9752092/

相关文章:

php - tinymce "codesample"插件执行HTML标签

php - 如何防止 PDO 将问号解释为占位符?

PHP:Gmail 的邮件包含无效的 HTML 和随机行话

php - Yii2/PHP/IIS7 - URL 重写和文件权限(漂亮的 URL 问题)

mysql - Joomla 和 Moodle 可以共享同一个数据库吗?

mysql - 我正在尝试使用 sql 将数据添加到现有行中的列

mysql - 当其他列的其他结果相同时,如何对sql中的结果求和?

sql - spark sql count(*) 查询存储结果

php - Symfony2.3 带有 IN 子句的原始 sql 查询

java - DatabaseMetaData#g​​etColumns 返回一个空的结果集