Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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和MySQL可能的最小和最大日期_Php_Mysql_Date - Fatal编程技术网

PHP和MySQL可能的最小和最大日期

PHP和MySQL可能的最小和最大日期,php,mysql,date,Php,Mysql,Date,PHP和MySQL识别的最大日期是什么 我的意思是,对于不同的时间轴,我有不同的值,我想让它们都成为MySQL中的BETWEEN选项,如下所示: SELECT * FROM table WHERE date BETWEEN '2011-10-01' AND '2011-10-02'; SELECT * FROM table WHERE date BETWEEN '2011-10-03' AND '2011-10-10'; SELECT * FROM table WHERE date BETWE

PHP和MySQL识别的最大日期是什么

我的意思是,对于不同的时间轴,我有不同的值,我想让它们都成为MySQL中的
BETWEEN
选项,如下所示:

SELECT * FROM table WHERE date BETWEEN '2011-10-01' AND '2011-10-02';
SELECT * FROM table WHERE date BETWEEN '2011-10-03' AND '2011-10-10';
SELECT * FROM table WHERE date BETWEEN '0000-01-01' AND '2011-10-01';
SELECT * FROM table WHERE date BETWEEN '2011-10-02' AND '2011-10-10';
SELECT * FROM table WHERE date BETWEEN '2011-10-11' AND '9999-12-31';
SELECT * FROM table WHERE date < '2011-10-01';
SELECT * FROM table WHERE date BETWEEN '2011-10-02' AND '2011-10-10';
SELECT * FROM table WHERE date > '2011-10-11' 
等等

为了得到所有的选择,我们想到了这样的事情:

SELECT * FROM table WHERE date BETWEEN '2011-10-01' AND '2011-10-02';
SELECT * FROM table WHERE date BETWEEN '2011-10-03' AND '2011-10-10';
SELECT * FROM table WHERE date BETWEEN '0000-01-01' AND '2011-10-01';
SELECT * FROM table WHERE date BETWEEN '2011-10-02' AND '2011-10-10';
SELECT * FROM table WHERE date BETWEEN '2011-10-11' AND '9999-12-31';
SELECT * FROM table WHERE date < '2011-10-01';
SELECT * FROM table WHERE date BETWEEN '2011-10-02' AND '2011-10-10';
SELECT * FROM table WHERE date > '2011-10-11' 

这会一直有效吗?或者代码有可能在某个时候中断吗?

您能这样做吗:

SELECT * FROM table WHERE date BETWEEN '2011-10-01' AND '2011-10-02';
SELECT * FROM table WHERE date BETWEEN '2011-10-03' AND '2011-10-10';
SELECT * FROM table WHERE date BETWEEN '0000-01-01' AND '2011-10-01';
SELECT * FROM table WHERE date BETWEEN '2011-10-02' AND '2011-10-10';
SELECT * FROM table WHERE date BETWEEN '2011-10-11' AND '9999-12-31';
SELECT * FROM table WHERE date < '2011-10-01';
SELECT * FROM table WHERE date BETWEEN '2011-10-02' AND '2011-10-10';
SELECT * FROM table WHERE date > '2011-10-11' 
从日期为<'2011-10-01'的表格中选择*;
从表格中选择*日期介于“2011-10-02”和“2011-10-10”之间;
从日期>'2011-10-11'的表格中选择*

可能首先从表中获取最大值和最小值:

SELECT * FROM table WHERE date BETWEEN (SELECT MIN(date) FROM table) AND (SELECT MAX(date) FROM table)
日期类型用于包含日期部分但不包含时间部分的值。MySQL以“YYYY-MM-DD”格式检索并显示日期值。支持的范围为“1000-01-01”到“9999-12-31”


摘自

以下是不同的日期范围,具体取决于您的列类型:

日期类型用于包含日期部分但不包含时间部分的值。MySQL以“YYYY-MM-DD”格式检索并显示日期值支持的范围为“1000-01-01”到“9999-12-31”。

日期时间类型用于同时包含日期和时间部分的值。MySQL以“YYYY-MM-DD HH:MM:SS”格式检索并显示日期时间值支持的范围为“1000-01-01 00:00:00”到“9999-12-31 23:59:59”。


时间戳数据类型用于同时包含日期和时间部分的值。时间戳的范围为UTC 1970-01-01 00:00:01到UTC 2038-01-19 03:14:07。

日期只不过是整数。整数大小取决于系统;i、 e.32位、64位等

在php中,可以使用常量php_INT_size确定整数大小,使用常量php_INT_MAX确定最大值

在mysql中,您可以执行以下操作:
选择~0作为max_bigint_unsigned

MySQL的
DATETIME
类型支持,从“1000-01-01”到“9999-12-31”。这应该足够了


PHP也可以分析这些;它们不是两位数的年份,所以很好。我刚刚在9999-01-01上运行了strotime,它起了作用。

是的,但是限制是否也在
1970-01-01
2038-01-19
?而不是介于两者之间,为什么不使用小于和结束日期?@WayneC有什么区别吗?不太确定你想要实现什么,也不完全符合我的要求。谢谢你,这正是我想要的。我也在看文档,但一定是不知何故跳过了这一部分。@DainisAbols很酷,谷歌也是我的同伴…:)