我想将MySQL中的timestamp
转换为日期。
我想将user.registration字段格式化为文本文件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(user.registration,'%d /%m /%Y'); news1
EMAIL2; NAME2;新闻2
如何将该字段转换为日期?
答案 0 :(得分:308)
DATE_FORMAT(FROM_UNIXTIME(`user.registration`), '%e %b %Y') AS 'date_formatted'
答案 1 :(得分:56)
使用整数时间戳创建表:
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)
答案 2 :(得分:49)
要获得约会,您可以cast
cast(user.registration as date)
并使用date_format
date_format(registration, '%Y-%m-%d')
答案 3 :(得分:18)
如果registration
字段确实属于TIMESTAMP
类型,您应该可以这样做:
$sql = "SELECT user.email,
info.name,
DATE(user.registration),
info.news
FROM user,
info
WHERE user.id = info.id ";
并且注册应显示为yyyy-mm-dd
答案 4 :(得分:10)
只需使用mysql的DATE功能:
mysql> select DATE(mytimestamp) from foo;
答案 5 :(得分:6)
您应该将timestamp
转换为date
。
select FROM_UNIXTIME(user.registration, '%Y-%m-%d %H:%i:%s') AS 'date_formatted'
答案 6 :(得分:2)
如果您在输出中收到查询,则需要向我们显示实际回显结果的代码。你可以发布调用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
如果查询引发错误,这将停止任何错误抑制。
答案 7 :(得分:1)
尝试:
SELECT strftime("%Y-%d-%m", col_name, 'unixepoch') AS col_name
它会将时间戳(以毫秒为单位)格式化为yyyy-mm-dd string。
答案 8 :(得分:1)
我是用' date'做到的。功能如here:
中所述browser.switchTo().frame($('.full-iframe').getWebElement());
答案 9 :(得分:1)
您可以尝试
日期为时间戳类型,其格式如下:c:\devel\a_anomaly_detection\.venv\scripts\python.exe c:\devel\a_anomaly_detection\.venv\lib\site-packages\wfastcgi.py
或function loadDisplayPos(){
var element = document.getElementById('checkboxes');
var tops = element.getElementsByTagName('input');
var tags = [];
for (var i=0, len=tops.length; i<len; i++) {
if ( tops[i].type === 'checkbox' ) {
if (tops[i].checked){
tags.push( tops[i].value);
}
}
}
var selectedPost = document.getElementById('posapp').innerHTML= tags;
}
‘YYYY-MM-DD HH:MM:SS’
PHP ‘2008-10-05 21:34:02.’
函数将MySQL时间戳解析为$res = mysql_query("SELECT date FROM times;");
while ( $row = mysql_fetch_array($res) ) {
echo $row['date'] . "
";
}
,可用于在PHP date函数中进一步解析或格式化。
以下是一些其他可能实际使用的示例日期输出格式:
strtotime
答案 10 :(得分:0)
FROM_UNIXTIME(unix_timestamp, [format])
是您所需要的
FROM_UNIXTIME(user.registration, '%Y-%m-%d') AS 'date_formatted'
FROM_UNIXTIME
获取一个数字值并将其转换为DATE
对象,
或者给定格式字符串,则将其作为字符串返回。
较早的解决方案是获取初始日期对象并使用第二个功能DATE_FORMAT
对其进行格式化...但这不再是必需的