Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 SQL查询以指定日期/时间格式选择当前或特定月份的值_Php_Mysql_Sql - Fatal编程技术网

Php SQL查询以指定日期/时间格式选择当前或特定月份的值

Php SQL查询以指定日期/时间格式选择当前或特定月份的值,php,mysql,sql,Php,Mysql,Sql,我已将日期保存在数据库(mysql)中,保存为(d-m-Y H:I:s) 如何编写sql查询来选择当前月份或特定月份的所有值?以MySQL日期格式存储日期,并使用以下查询: SELECT * FROM table WHERE MONTH(date_field) = MONTH(CURRENT_DATE) AND YEAR(date_field) = YEAR(CURRENT_DATE) 将日期

我已将日期保存在数据库(mysql)中,保存为
(d-m-Y H:I:s)


如何编写sql查询来选择当前月份或特定月份的所有值?

以MySQL日期格式存储日期,并使用以下查询:

SELECT 
        * 
    FROM 
        table 
    WHERE 
        MONTH(date_field) = MONTH(CURRENT_DATE) 
    AND 
        YEAR(date_field) = YEAR(CURRENT_DATE)

将日期存储为字符串/varchar是一个非常糟糕的主意。

将日期存储为MySQL日期格式,并使用以下查询:

SELECT 
        * 
    FROM 
        table 
    WHERE 
        MONTH(date_field) = MONTH(CURRENT_DATE) 
    AND 
        YEAR(date_field) = YEAR(CURRENT_DATE)
SELECT * FROM `your_table` WHERE MONTH(`your_date_column`)=6 
AND YEAR(`your_date_column`)=2012
将日期存储为字符串/varchar是一个非常糟糕的主意

SELECT * FROM `your_table` WHERE MONTH(`your_date_column`)=6 
AND YEAR(`your_date_column`)=2012
从2012年6月开始获取所有信息

SELECT *
FROM table
WHERE DATE_FORMAT(date_field,'%m-%Y') = '07-2012';

从2012年6月开始获取所有内容。

更好的方法是在裸日期列上进行比较,并保持查询可搜索(即能够利用索引):
WHERE date\u field>=STR\u to\u date(CONCAT(YEAR(NOW()),“-”,MONTH(NOW()),“-01”),“%Y-%m-%d”)
更好的方法是在裸日期列上进行比较,并保持查询的可搜索性(即能够利用索引):
WHERE date\u field>=STR\u to\u date(CONCAT(YEAR(NOW()),'-',MONTH(NOW()),'-01'),'%Y-%m-%d')
SELECT *
FROM table
WHERE DATE_FORMAT(date_field,'%m-%Y') = '07-2012';