Mysql 连接日期函数

Mysql 连接日期函数,mysql,sql,date,datetime,Mysql,Sql,Date,Datetime,mysql查询返回了意外的结果。我试图连接几个包含日期查询的字符串,如下所示: mysql> select month(timestamp) +'-'+ day(timestamp) + '-' + year(timestamp) as date FROM table ORDER BY timestamp DESC LIMIT 1; 我得到一个4位数的结果,我假设它是预期结果的总和: +------+ | date | +------+ | 2035 | +------+

mysql查询返回了意外的结果。我试图连接几个包含日期查询的字符串,如下所示:

mysql> select month(timestamp) +'-'+ day(timestamp) + '-' + 
       year(timestamp) as date FROM table ORDER BY timestamp DESC LIMIT 1;
我得到一个4位数的结果,我假设它是预期结果的总和:

+------+
| date |
+------+
| 2035 |
+------+
我还尝试将每个字符转换为
CHAR
,但没有成功:

mysql> select CAST(month(timestamp) as CHAR) +'-'+ CAST(day(timestamp) as CHAR) + '-' + 
CAST(year(timestamp) as CHAR) as date FROM table ORDER BY timestamp DESC LIMIT 1;

有人能告诉我我做错了什么吗。。。我想如何修复它也很好:)

在MySQL中,使用
CONCAT\u WS

CONCAT_WS('-', month(timestamp),day(timestamp),year(timestamp))
质疑,

SELECT CONCAT_WS('-', month(timestamp),day(timestamp),year(timestamp)) AS DATE
FROM   tablename
ORDER  BY timestamp DESC 
LIMIT  1
或者使用
DATE\u格式

SELECT DATE_FORMAT(timestamp, '%m-%d-%Y') AS DATE
FROM   Table1
ORDER  BY timestamp DESC 
LIMIT  1
其他:


使用CONCAT、DAY、MONTH、YEAR等来格式化日期是愚蠢的

如果
timestamp
是包含UNIX时间戳的整数列,请使用以下命令:

SELECT DATE_FORMAT(FROM_UNIXTIME(`timestamp`), '%m-%d-%Y') AS `Formatted Date`
...
SELECT DATE_FORMAT(`timestamp`, '%m-%d-%Y') AS `Formatted Date`
...
如果
timestamp
是日期/日期时间列,请使用以下命令:

SELECT DATE_FORMAT(FROM_UNIXTIME(`timestamp`), '%m-%d-%Y') AS `Formatted Date`
...
SELECT DATE_FORMAT(`timestamp`, '%m-%d-%Y') AS `Formatted Date`
...

令人惊叹的!普通的老式
CONCAT
工作得很好。忘了那些。。。谢谢大家!<代码>+是最常用的(但在MSSQL中用于字符串连接)。