PHP以及MYSQL日期比较方法

PHP以及MYSQL日期比较方法,第1张

MYSQL日期比较

TO_DAYS(NOW())

-

TO_DAYS(date_col)

<=

30

我们的date_col必须是日期时间格式,而不能是时间戳,

mysql>

SELECT

FROM_UNIXTIME(875996580)

->

'1997-10-04

22:23:00'

day(FROM_UNIXTIME(1277709862))这个返回的是某个时间戳到现在经过的天数

获取

日:day(FROM_UNIXTIME(add_time))

获取

月:month(FROM_UNIXTIME(add_time))

获取

年:year(FROM_UNIXTIME(add_time))

sql文里面获得时间戳后格式化为日,月,年:day(now()),month(now()),year(now())

其中add_time是字段名,存放格式为linux时间戳.

mysql>

set

@a

=

unix_timestamp()

Query

OK,

0

rows

affected

(0.00

sec)

mysql>

select

@a

+------------+

|

@a

|

+------------+

|

1154942084

|

+------------+

1

row

in

set

(0.00

sec)

mysql>

select

from_unixtime(@a)

+---------------------+

|

from_unixtime(@a)

|

+---------------------+

|

2006-08-07

17:14:44

|

+---------------------+

1

row

in

set

(0.00

sec)

Mysql在比较两种不同数据类型时,第一步是将他们转化为同一种类型,然后在比较。那么Date和String在比较的时候,一定是把String转化为Date吗?答案是Yes.

http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html

If one of the arguments is a TIMESTAMP or DATETIME column and the other argument is a constant, the constant is converted to a timestamp before the comparison is performed.

简单举个例子,如果是用字符串比较,"2004-04-31"这个string应该比2004-01-01这个date来得大,但是4-31是一个invalid的日期(4月是小月),会被转化成"0000-00-00",所以2004-01-01 (日期) >"2014-04-31"。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7515474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存