Mysql 将yyyymmdd(整型)转换为日期
我需要使用函数,因此我需要日期类型 而我在db中看到的是一个int类型,比如20150101,代表2015年1月1日 我试过从_UNIXTIME下载Mysql 将yyyymmdd(整型)转换为日期,mysql,sql,Mysql,Sql,我需要使用函数,因此我需要日期类型 而我在db中看到的是一个int类型,比如20150101,代表2015年1月1日 我试过从_UNIXTIME下载,但显然不是我想要的: select FROM_UNIXTIME(20150101) from dual; +-------------------------+ | FROM_UNIXTIME(20150101) | +-------------------------+ | 1970-08-22 14:15:01 | +---------
,但显然不是我想要的:
select FROM_UNIXTIME(20150101) from dual;
+-------------------------+
| FROM_UNIXTIME(20150101) |
+-------------------------+
| 1970-08-22 14:15:01 |
+-------------------------+
我有办法将yyyymmdd(int)转换为日期类型吗?您可以选择它作为日期()
,它会自动转换
SELECT DATE(20150101) FROM dual;
20150101
不是unix时间戳,其格式为ymd
您需要date\u格式
对其进行格式化
mysql> select date_format('20150101','%Y-%m-%d') as date ;
+------------+
| date |
+------------+
| 2015-01-01 |
+------------+
1 row in set (0.00 sec)
mysql> select unix_timestamp('2015-01-01');
+------------------------------+
| unix_timestamp('2015-01-01') |
+------------------------------+
| 1420050600 |
+------------------------------+
1 row in set (0.00 sec)
mysql> select FROM_UNIXTIME(1420050600) ;
+---------------------------+
| FROM_UNIXTIME(1420050600) |
+---------------------------+
| 2015-01-01 00:00:00 |
+---------------------------+
1 row in set (0.00 sec)
像这样的方法应该会奏效:
SELECT WEEK(
CONCAT(
SUBSTR(20150101, 1, 4),
'-',
SUBSTR(20150101, 5, 2),
'-',
SUBSTR(20150101, 7, 2)
)
)
FROM dual
。。。假设字符数始终为8(如20150101
)。为什么不将其存储在日期或日期时间列中?为什么要让生活变得更加艰难?