0

我正在编码通过 compare 搜索数据dateTime。在 Web 表单中,用户输入值2012-06-04存储在$_REQUEST['dateSearch']. 我从中创建dateTime对象:

$dateObj = date_create_from_format("Y-m-d",$_REQUEST['dateSearch']);
$dateParam = $dateObj->format("Y-m");

然后我$dateParam在sql查询中使用来查找数据

$sql = "
    SELECT *
    FROM `temp` as `t`
    WHERE `t`.`date` LIKE '$dateParam%'
";

一切都很好,但我不确定 MySQL 是否总是只使用一种dateTime格式Y-m-d H:i:s。在这里,$dateParam = $dateObj->format("Y-m");我设置默认格式为“Ym”。默认格式永远不会改变吗?我不想要Y-m-d H:i:s代码中的硬设置格式,而不是,我认为从系统获取格式字符串以使用更好。如何dateTime从 mySQL 获取默认格式字符串???

4

2 回答 2

4

您误解了,Y-m-d H:i:s
日期时间数据类型的唯一格式。

Y-m-d = date
H:i:s = time

这就是为什么被命名为datetime

要更改 mysql 中 datetime 的返回格式,
可以使用mysql 中的date_format函数

如,

date_format('%Y-%m') = 2012-06
于 2012-06-04T10:37:36.443 回答
0

下面更好用!

select * from users where month(`t`.`date`)='12' and year(`t`.`date`)='2010'

REF:月份年份的 MySQL 查询

于 2012-06-04T10:45:49.923 回答