问题1:我正在使用datetime在MySQL中存储日期和时间。我使用MySQL Now()函数来插入datetime。如何使用其他格式存储日期?来自:年 - 月 - 小时:分钟:秒到:日 - 月 - 年小时:分钟:秒。
问题2:如何只检索上面存储日期的指定部分(日,月,年等)?
答案 0 :(得分:4)
你不明白,mysql只在yyyy-mm-dd
接受日期格式。你无法改变mysql的标准。
虽然您可以使用mysql内置函数以不同格式检索日期。
查看mysql的date and time函数,您可以以任何格式检索日期,然后为什么需要更改存储格式。
答案 1 :(得分:0)
使用datetime类型和date_format()以您喜欢的方式显示日期。将它们存储为字符串是错误的。
答案 2 :(得分:0)
您无法真正选择存储日期时间,您只能选择在检索日期时如何格式化,这就是我认为您想要的。 MySQL有关于如何存储日期时间和类似格式的内部机制。
在您选择datetime列的查询中,您可以指定格式选项,或者您可以使用PHP的DateTime类以您想要的任何格式输出给定日期。
假设您要格式化直接存储在查询中的日期mysql,您可以使用以下内容:
SELECT CONCAT(MONTH(NOW()), '.', DAY(now()), '.', YEAR(now()));
在提供的示例中,您可以将NOW()替换为在表中存储日期时间的列,应该很容易自己做,我假设您有足够的经验。
为了检索单个值,例如给定日期的分钟或秒 - 你几乎自己拥有它,语法是
SELECT MINUTE(NOW());
SELECT SECOND(NOW());
你也可以使用MICROSECOND,DAY,MONTH,YEAR - 只需通过正确的日期时间,MySQL就可以完成其余的工作。
答案 3 :(得分:0)
如前所述,改变日期时间的存储方式并不是一个好主意(因为一件事情会按日期排序),但你可以做的是更改输出日期,如下所示:
$oldDate = "2011-12-10 10:22:32
$newDate = date('d-m-Y G:i:s', strtotime($oldDate));
echo $newDate
10-12-2011 10:22:32
对于你的第二个问题,可能是:
$newDate = date('d/m - Y', strtotime($oldDate));
echo $newDate
10/12 - 2011
要更改输出,请阅读PHP Date()
这是一种方法,但也可以使用datetime()直接从SQL Query中完成。
希望这能回答你的问题...