Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表单和数据库之间的日期冲突_Php_Mysql_Sql - Fatal编程技术网

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

Php 表单和数据库之间的日期冲突,php,mysql,sql,Php,Mysql,Sql,如果用户通过aform($date\u booked)以以下格式提供日期: 2012-1-6 2012-01-06 与日期(预定日期)进行比较: 2012-1-6 2012-01-06 检查它的正确SQL方法是什么(使用phpMyAdmin): 或者MySQL不会返回任何东西 提前感谢。假设您正在使用TSQL,并且用户输入了正确的日期 SELECT * FROM room WHERE date_booked = CONVERT(date, @UserEnteredDate) 您已将问题

如果用户通过aform($date\u booked)以以下格式提供日期:

2012-1-6
2012-01-06
与日期(预定日期)进行比较:

2012-1-6
2012-01-06
检查它的正确SQL方法是什么(使用phpMyAdmin):

或者MySQL不会返回任何东西


提前感谢。

假设您正在使用TSQL,并且用户输入了正确的日期

SELECT * FROM room WHERE date_booked = CONVERT(date, @UserEnteredDate)
您已将问题更新为MySQL

下面是一个关于如何比较日期的好例子

$variable
符号中假设PHP

使用PHP中的
date\u parse()
函数,可以很容易地比较两个日期,即使它们在语法上不同:

date_parse('2012-1-6');

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

请注意,将数据库中的日期/时间信息存储在UNIX时间戳(01秒/ 01秒/秒)中,这将更容易执行计算。PHP有许多日期/时间函数

如果最终将日期和时间存储为Unix时间戳,则可以使用PHP:

strotime-将任何英文文本datetime描述解析为Unix时间戳


哪个SQL数据库系统?哪种编程语言?正确的答案是将字符串转换为编程语言中的日期/日期时间,然后将其作为日期/日期时间参数传递给数据库,但是如果不了解这些细节,就无法提供示例。(当然,希望DB将该值存储为datetime;但从正确性的角度来看,在查询过程中强制转换(到datetime)可能更好,如果性能有问题,则将其用作模式更改的原因)我添加了MySQl和php作为标记。我相信phpMyAdmin是一个通用的查询工具,而不是“表单”使用的技术,所以我不相信这是实际问题的一部分。(我还进一步假设,如果您使用的是phpMyAdmin,这也意味着您的通用语言是PHP。在这一点上我不知道)代码格式几乎正确-您需要缩进四个空格(或点击
{}
按钮)。@Damien_不相信人的错误偶尔出现一次。谢谢你指出这一点+而且大部分是暂时的。我确信最初的问题没有技术细节(因此我对它进行了第一次评论),但事实证明它是MySQL。所以
CONVERT
不起作用(我希望
CAST
应该)@Damien\u不信由你,我只是尝试格式化我的
SELECT..
查询(通常是4个空格),但运气不好。大多数数据库(包括MySQL)都内置了日期时间类型。最好使用这些类型,而不是试图“暗示”其他类型的含义,如string、int或decimal。我的经验/习惯提醒我,历元时间戳是通用的——如果引擎支持日期/时间,那么它将识别历元(如果我错了,请纠正我)。我认为它仍然是一个很好的便携式和易于使用的选择。只要解释数据的每个人都知道纪元,纪元时间戳是通用的?这偏离了关系数据库的意图,即数据应该在没有外部引用的情况下可用