2013-12-18 31 views
1

是否可以更改date()的配置;那已经插入数据库了?如何更改时间配置?

例如: 现在的日期显示在下面的方法:2013年12月12日下午12时28

有没有只显示我从中选择部分的方法吗?像“12 DEC”。

试图在PHP中完成此操作。

谢谢!

+1

你尝试'日期()'?你在你的问题中提到过它。 – AbraCadaver

+0

http://dev.mysql.com/doc/refman/5.0/en/locale-support.html或http://dev.mysql.com/doc/refman/5.5/zh/date-and-time-functions 。html可能会有所帮助,具体取决于您希望它是全局更改还是特定于查询 – xQbert

+0

您说过显示日期的方式,但是您没有提到如何实际存储它们。什么是您的表中此列使用的确切数据类型? – peterm

回答

0

获取日期与您的格式,你会尝试:

<?php 
echo date('d M'); 
?> 

但是,你需要更新你的表中每一行改变自己的价值。

1

使用date()函数。如果您尝试格式化数据库条目的值,请使用strtoupper(date('j M',strtotime($row['column'])))(它将输出您要查找的格式并将所有内容像您提供的示例一样输出)进行获取并显示它

1

不要存储日期/时间值(尤其是详细格式化)作为数据库中的字符串,因为您无法正常维护和查询数据。如果您以秒为单位存储Unix纪元时间,则使用适当的日期data typesDATETIMETIMESTAMP或甚至INT)。

您可以在以下方式

UPDATE table_name 
    SET column_name = STR_TO_DATE(column_name, '%M %D, %Y, %h:%i %p'); 
ALTER TABLE table_name CHANGE column_name column_name DATETIME; 

这里从VARCHAR数据类型更改为DATETIMESQLFiddle演示

现在可以正确地过滤和date列,例如,为了您的数据:

SELECT * 
    FROM table_name 
WHERE column_name >= '2013-12-17' 
    AND column_name < '2013-12-18' 
ORDER BY column_name DESC; 

现在你可以

SELECT DATE_FORMAT(column_name, '%d %b') formatted_date 
    FROM table_name; 

输出示例:

 
| FORMATTED_DATE | 
|----------------| 
|   17 Dec | 
|   18 Dec | 

这里是SQLFiddle演示


在此期间,如果你需要的,因为你需要与DATE_FORMAT()的功能,例如方便地展示您的日期时间值立即解决您的问题

SELECT DATE_FORMAT(STR_TO_DATE(column_name, '%M %D, %Y, %h:%i %p'), '%d %b') formatted_date 
    FROM table_name; 

这里是SQLFiddle演示