我想将MySQL中的时间戳转换为日期。
我想格式化用户。将注册字段作为yyyy-mm-dd输入到文本文件中。
这是我的SQL:
$sql = requestSQL("SELECT user.email,
info.name,
FROM_UNIXTIME(user.registration),
info.news
FROM user, info
WHERE user.id = info.id ", "export members");
我还尝试了日期转换:
DATE_FORMAT(user.registration, '%d/%m/%Y')
DATE(user.registration)
我在写入文本文件之前回显结果,我得到:
email1; name1 DATE_FORMAT(用户)。registration,‘d - m % % Y); news1
email2; name2 news2
如何将该字段转换为日期?
如果您在输出中获得查询,您需要向我们显示实际响应结果的代码。你能发布调用requeteSQL的代码吗?
例如,如果在php中使用了单引号,它将打印变量名,而不是值
echo 'foo is $foo'; // foo is $foo
这听起来就像你的问题,我肯定这就是原因。
此外,试着去掉@符号,看看这是否有助于提供更多信息。
这
$SQL_result = @mysql_query($SQL_requete); // run the query
就变成了
$SQL_result = mysql_query($SQL_requete); // run the query
如果查询抛出错误,这将停止任何错误抑制。
在MYSQL中将时间戳转换为日期
用整数时间戳创建表:
mysql> create table foo(id INT, mytimestamp INT(11));
Query OK, 0 rows affected (0.02 sec)
插入一些值
mysql> insert into foo values(1, 1381262848);
Query OK, 1 row affected (0.01 sec)
看一看
mysql> select * from foo;
+------+-------------+
| id | mytimestamp |
+------+-------------+
| 1 | 1381262848 |
+------+-------------+
1 row in set (0.00 sec)
将数字转换为时间戳:
mysql> select id, from_unixtime(mytimestamp) from foo;
+------+----------------------------+
| id | from_unixtime(mytimestamp) |
+------+----------------------------+
| 1 | 2013-10-08 16:07:28 |
+------+----------------------------+
1 row in set (0.00 sec)
将其转换为可读的格式:
mysql> select id, from_unixtime(mytimestamp, '%Y %D %M %H:%i:%s') from foo;
+------+-------------------------------------------------+
| id | from_unixtime(mytimestamp, '%Y %D %M %H:%i:%s') |
+------+-------------------------------------------------+
| 1 | 2013 8th October 04:07:28 |
+------+-------------------------------------------------+
1 row in set (0.00 sec)
如果你想改变列的数据类型,你可以简单地先从TIMESTAMP转换为INT:
ALTER TABLE table_name MODIFY column_name INT;
然后INT to DATE:
ALTER TABLE table_name MODIFY column_name DATE;
但是,如果你不想改变一个列,而只想要SELECT,那么你可以使用date()函数:
SELECT date(your_timestamp_column) FROM your_table;