如何在MySQL/PHP中插入和读取时间/日期?

问题描述:

我想读的单日,月,年,而无需添加3个额外的MySQL行,这种格式(与PHP):如何在MySQL/PHP中插入和读取时间/日期?

day: 01 
month: Jan, Feb, Mar..(first three letters) 
year: 2011 

这是桌子和PHP脚本,我现在使用:

我添加日期与PHP:

$query = "SELECT * FROM news"; 
$result = mysql_query ($query); 

while ($row = mysql_fetch_assoc ($result)) { 
echo $row['time']; 
} 

mysql_query("INSERT INTO news (...,`time`) VALUES (...'".date(d.".".m.".".Y)."');"); 

我读出来210

MySQL表:

news: 
time(text): 
"27.03.2011" 
+0

我很困惑,为什么你不只是使用MySQL的内置日期/时间类型之一,如日期? MySQL的内部日期是Y-m-d,而不是d.m.Y.此外,你使用'date()'不正确 - 日期代码是在一个字符串中,所以对于这个(我不推荐,只是纠正你的代码),它会是'date('d.m.Y')'。但没有理由这样做。 – Andrew

查询应该是:

mysql_query("INSERT INTO news (...,`time`) VALUES (...'".date(d.".".M.".".Y)."');"); 

M代替m给出了本月的3个字母的文本表示形式。

用得到它:

while ($row = mysql_fetch_assoc ($result)) { 
    echo date('d', strtotime(str$row['time'])); 
    echo date('M', strtotime(str$row['time'])); 
    echo date('Y', strtotime(str$row['time'])); 
} 

了解更多关于:

http://php.net/manual/en/function.date.php

+0

thnaks。那是我正在寻找的时间配置;) – JonasT

你可以做到这一点在PHP中,检查strftime function或选择一些东西使用像

SELECT DAY(date) as day, MONTH(date) as month, YEAR(date) as year FROM table 

,并在PHP中,你会acccess它作为$结果[ '天' ]。 $ result ['month']等SELECT查询中的“日期”当然是存储日期的列的名称。我建议的strftime

您可以使用MONTH(),DAY()年()MySQL函数,即

SELECT MONTH(`time`) AS `month`, DAY(`time`) AS `day`, YEAR(`time`) AS `year` FROM `news` [...] 
+0

感谢您的MySQL查询:) – JonasT

SELECT *, substring(1,2) as day, substring(4,2) as month, substring(7) as year FROM table 

你也可以(也应该)使用date表格式,使用DAY()MONTH()YEAR()功能

你应该在你的MySQL表来使用DATETIME列。然后,MySQL负责以自己的内部格式存储日期,并且可以以您需要的任何格式检索它。

插入当前日期,你可以简单地

INSERT INTO news (...,`time`) VALUES (...,NOW()) 

要在你希望的格式检索,使用

SELECT DATE_FORMAT(`time`, '%d.%b.%Y'); 

Documentation on MySQL DATE_FORMAT()