我正在编码通过比较dateTime
来搜索数据。在 Web 表单中,用户输入值2012-06-04
存储在$_REQUEST['dateSearch']
中。我从中创建dateTime
对象:
$dateObj = date_create_from_format("Y-m-d",$_REQUEST['dateSearch']);
$dateParam = $dateObj->format("Y-m");
然后我在 sql 查询中使用$dateParam
来查找数据
$sql = "
SELECT *
FROM `temp` as `t`
WHERE `t`.`date` LIKE '$dateParam%'
";
一切都很好,但我不确定MySQL是否总是只使用一种dateTime
格式Y-m-d H:i:s
。在这里,$dateParam = $dateObj->format("Y-m");
我设置的默认格式是"Y-m"。默认格式永远不会更改吗?我不希望在代码中Y-m-d H:i:s
硬设置格式,而不是,我认为从系统中获取格式字符串更好。如何从 mySQL 获取默认dateTime
格式字符串???
你误解了,Y-m-d H:i:s
是日期时间数据类型的唯一格式。
Y-m-d = date
H:i:s = time
这就是为什么被命名为datetime
要在 mysql 中更改日期时间的返回格式,
您可以在MySQL中使用date_format函数
如
date_format('%Y-%m') = 2012-06
最好在下面使用!
select * from users where month(`t`.`date`)='12' and year(`t`.`date`)='2010'
参考:月份年份的 MySQL 查询