Mysql Text to Date不起作用

时间:2014-11-17 07:50:09

标签: php mysql

我遇到了以下问题。我有一个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。

4 个答案:

答案 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”