【发布时间】:2015-03-18 06:56:11
【问题描述】:
我在 MySQL 日期 (varchar) 列中有日期格式:“01/Jan/2015”。我想把它转换成“01012015”格式。
这可能在 MySQL 日期格式中吗?
【问题讨论】:
-
如果使用 mysql ,这应该是要看的问题:stackoverflow.com/questions/1861489/…
-
感谢您提供此链接。
我在 MySQL 日期 (varchar) 列中有日期格式:“01/Jan/2015”。我想把它转换成“01012015”格式。
这可能在 MySQL 日期格式中吗?
【问题讨论】:
是的,你需要使用str_to_date函数
select str_to_date("01/Jan/2015","%d/%b/%Y");
这会将您的 varchar 日期转换为实际日期,然后您需要将 date_format 函数应用为
select date_format(str_to_date("01/Jan/2015","%d/%b/%Y"),"%m%d%Y");
mysql> select date_format(str_to_date("01/Jan/2015","%d/%b/%Y"),"%m%d%Y") as date;
+----------+
| date |
+----------+
| 01012015 |
+----------+
1 row in set (0.00 sec)
只需将上述查询中的硬编码日期替换为列名即可
select date_format(str_to_date(CDATE,"%d/%b/%Y"),"%m%d%Y");
【讨论】:
order by (str_to_date(CDATE,"%d/%b/%Y"),"%m%d%Y")即可。
01012015、01022015、01032015 等等。我想首先显示一月的所有日期,如01012015、02012015、03012015,然后是二月等等。
您想将“01/Jan/2015”转换为“01012015”:
SELECT DATE_FORMAT(STR_TO_DATE('01/Jan/2015','%d/%b/%Y'), '%d%m%Y')
请注意,在 STR_TO_DATE 中,您使用 %b 表示 3 个字母的月份,但在 DATE_FORMAT 中,您使用 %m 表示两位数的月份。
【讨论】:
MySQL 以 'YYYY-MM-DD' 格式检索和显示 DATE 值。您应该使用您的应用程序层重新格式化为所需的格式。如果您使用的是 PHP,您可以使用 date() 函数来执行此操作
【讨论】:
这对你有帮助
strtotime($date);
【讨论】:
PHP 函数并在你的答案中显示代码和输出吗?