2013-12-18 32 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演示