MySQL计算两个日期相差天数的方法mysql日期相差天数

我之前用过这个方法进行分析,效果很好。
记得有一次,我们公司需要分析两个时间点之间客户活动的变化,计算出主要活动的天数差异。

我当时用的是这个系统。
第一步是将日期转换为单个符号。
例如,如果要计算2 01 9 年3 月3 日到2 01 9 年3 月4 日之间的天数,请使用UNIX_TIMESTAMP函数将日期转换为时间戳。

UNIX_TIMESTAMP('2 01 9 -3 -3 ') 和 UNIX_TIMESTAMP('2 01 9 -3 -4 '),这两个函数用于转换 1 9 7 0 年 1 月 1 日之后的秒数。
这样我们就可以得到两个时间点的秒数。

然后第二步是用后一个指示减去前一个指示,得到两者之间的秒差。
计算如下:UNIX_TIMESTAMP('2 01 9 -3 -4 ')
UNIX_TIMESTAMP('2 01 9 -3 -3 ')。

接下来,在第三度中,我们将秒变成天。
由于一天有 8 6 ,4 00 秒,我们将秒差除以 8 6 ,4 00 就得到天数。

最后将这些操作组合在一起,得到单个 SQL 语句作为输出: SELECT (UNIX_TIMESTAMP('2 01 9 -3 -4 ')
UNIX_TIMESTAMP('2 01 9 -3 -3 ')) / 8 6 4 00 AS '差异天数'。

这个技巧其实很实用,既可以用于评分分析,也可以用于其他需要计算的情况。
当然,有时候,如果数据量很大,或者计算很复杂,就必须考虑其他更严肃的方法。
但这对我来说就足够了。

深入理解MySQL中时间范围的处理方式

需要注意的是:除非必要,否则不要在时间字段上使用函数,因为这会导致索引失败。

不信:不要默认使用DATETIME类型,根据实际需要选择DATE或TIME。

Dont:不要忽略时区问题,统一使用UTC存储,搜索时回退到目标时区。

MySQL日期时间数据类型有哪些

MySQL 日期时间类型总结: 1 .DATETIME:默认格式; 8 字节;无时区;范围 1 000-01 -01 至 9 9 9 9 -1 2 -3 1 2 .时间戳:4 字节;从 1 9 7 0-01 -01 到 2 03 8 -01 -1 9 当前时间戳根据时区自动设置。
3 .年份:4 字节;范围1 9 01 -2 1 5 5 ,仅存储一年。
4 . TIME:表示从-8 3 8 :5 9 :5 9 到8 3 8 :5 9 :5 9 的时间或间隔,可以代表超过2 4 小时的时间段。

选择依据:数据范围;存储、时区。