我遇到了以下问题。我有一个mysql字段,类型为" text"而且里面有很多生日。 我想打印日期并按日期格式排序。我无法更改数据库中的类型,因为它与某些用户个人资料值字段相关。
数据库中的值是这样的:
1978-12-31 23:59:59
这是我的疑问:
$result = mysql_query("SELECT a.value, b.username from yrt6h_community_fields_values a join yrt6h_users b on a.user_id = b.id where a.field_id = 3 order by a.value;");
这是我的示例php文件:
<table>
<tr>
<td>User:</td>
<td>Datum:</td>
</tr>
<?php
while($row = mysql_fetch_array($result)){
echo '<tr>';
echo '<td>';
echo $row['username'] . ' : ';
echo '</td>';
echo '<td>';
echo $row['value'];
echo '</td></tr>';
}
?>
</table>
我尝试了mysql的所有日期格式函数,但后来我什么也没得到。 例如,我试过这个:
mysql_query("SELECT str_to_date(a.value, '%d.%m.%Y'), ...
或
mysql_query("SELECT str_to_date(date_format(a.value, '%Y.%m.%d') %d.%m.%Y), ...
但我这样做,日期的回声是空的。没有什么可以打印出去了。但为什么?即使我将此查询直接放在数据库中,我的生日值也为NULL。
答案 0 :(得分:1)
为什么不尝试使用php
喜欢 -
echo date('d-m-Y', strtotime($yourDate));//the first paramete is the date format you want and the second is the value you are getting from database.
Reference了解更多信息,示例和格式。
答案 1 :(得分:0)
几乎就在那里!
我建议您先使用
从数据库中获取数据mysql_query("SELECT str_to_date(a.value, '%d.%m.%Y')
然后
while($row = mysql_fetch_array($result))
{
$date = $row['date'];
$time = strtotime($date);
$formattedDate = date('Y-m-d', $time);
}
echo $formattedDate ;
这是否会成为塞内塞?
答案 2 :(得分:0)
你试过PHP Date() function吗?
你可以这样做: 如果您要查找与特定日期匹配的所有记录:
$timestamp = date('Y-m-d H:i:s'); //get current timestamp
mysql_query("SELECT * FROM `table` WHERE `timestamp` = '$timestamp'");
或 - 如果您尝试按时间戳选择/订购:
mysql_query("SELECT * FROM `table` ORDER BY `timestamp`"); //select all order by timestamp
答案 3 :(得分:0)
你可以使用mysql“cast”功能。 以这种方式重写查询: “SELECT cast(a.value as DATETIME)new_dob,str_to_date(a.value,'%d。%m。%Y')dob from table_nm where cond”