gpt4 book ai didi

php - 在 php 和 mysql 中获取特定月份和年份的记录

转载 作者:行者123 更新时间:2023-11-29 04:20:21 26 4
gpt4 key购买 nike

我有一个表,其中记录以 9/23/2014 这种日期格式存储。我搜索了很多,但我得到的所有结果都是时间戳格式 (2013-12-27)。

谁能帮我,如何从特定月份(比如“2014 年 9 月”)检索数据

如果有帮助,非常感谢。

   Table: events

id course description date start end
1 john test 9/23/2014 1:00pm 3:00pm
2 brad play 12/30/2014 5:00pm 8:00pm

My Code:

SELECT date FROM events WHERE MONTHNAME(date) = 'September' AND YEAR(date) = '2014'

最佳答案

你应该使用 BETWEEN -

SELECT * 
FROM `events`
WHERE `date` BETWEEN '2013-09-01' AND '2013-09-30';

因为您的日期存储为 varchar(您真的应该修复它),所以您必须将字符串转换为日期格式,然后进行搜索。虽然表现会很糟糕 -

WHERE STR_TO_DATE(`date`, '%m/%/d/%Y %h:%i:%s %p') BETWEEN STR_TO_DATE('2013-09-01', '%m/%/d/%Y') AND STR_TO_DATE('2013-09-30', '%m/%/d/%Y')

WHERE STR_TO_DATE(LEFT(`date`,LOCATE(' ',`date)),'%m/%d/%Y') BETWEEN '2013-09-01' AND '2013-09-30';

您也可以使用此方法(尽管我更喜欢第一种方法,因为它提供了控制)-

SELECT * FROM `table` WHERE YEAR(`date_column`) = 2013 AND MONTH(`date_column`) = 9;

编辑:更新以反射(reflect) OP 的表架构。你应该经常检查 reserved word命名列之前的信息。

关于php - 在 php 和 mysql 中获取特定月份和年份的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26106362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com