ysql查询时间戳和日期的转换
在
数据库的使用中,经常需要按指定日期来查询记录,以便于统计,而在数据库中,有很多存储的是时间戳,
也有的直接存日期,查询的时候可能不是那么好弄.
mysql提供了两个函数:
from_unixtime(time_stamp) -> 将时间戳转换为日期
unix_timestamp(date) -> 将指定的日期或者日期字符串转换为时间戳
如: from_unixtime(time_stamp)
[plain]
select
from_unixtime(1382544000);
+
---------------------------+
| from_unixtime(1382544000) |
+
---------------------------+
| 2013-10-24 00:00:00 |
+
---------------------------+
如: unix_timestamp(
date
)
[plain]
select
unix_timestamp(
date
(
'2013-10-24'
));
+
------------------------------------+
| unix_timestamp(
date
(
'2013-10-24'
)) |
+
------------------------------------+
| 1382544000 |
+
------------------------------------+
如果要查询当天的订单的记录:
[plain]
select
count
(*)
from
b_order
Where
date_format(from_unixtime(create_time),
'%Y-%m-%d'
) = date_format(now(),
'%Y-%m-%d'
)
也可以这样:
[plain]
select
count
(*)
from
b_order
Where
create_time >= unix_timestamp(
'2013-10-24 00:00:00'
)
and
create_time <= unix_timestamp(
'2013-10-24 23:59:59'
) ;
参考一
SELECT NOW(),UNIX_TIMESTAMP() UPDATE `order` SET `status` = 'closed' WHERE `pay_status` = 'wait_pay' AND UNIX_TIMESTAMP()>create_time+172800 SELECT create_time+172800,date_add(now(), interval 1 hour),FROM_UNIXTIME(create_time,'%Y%m%d %H'), FROM_UNIXTIME(create_time,'%Y%m%d %H') FROM `order`