深入探索MySQL中分钟级别的时间操作技巧mysql中分钟

这是一个陷阱。
不要使用 DATE_FORMAT 来处理分钟。
这是低效的。
别相信。
除非逻辑很复杂,否则存储过程与细粒度操作相比没有任何优势。
不要这样做。
请改用 UNIX_TIMESTAMP+DIV6 0。

任务通知:优先考虑UNIX_TIMESTAMP和DIV6 0。

SQL 日期函数如何获取当前时间?

让我告诉你这件事。
我曾经在家乡建立过一个电子商务网站。
当时用的是MySQL,2 02 3 年。
有时候需要记录订单输入的时间,或者订单更新的时间。
这必须使用当前时间。
我经常使用NOW(),因为它以正确的格式返回完整的日期和时间,所以我不必自己拼接。
例如,如果我输入 SELECT NOW();,它会返回我 2 02 3 -1 0-2 6 1 4 :3 0:2 5 ,这恰好是我当天检查的这个时间。

后来换了一个项目,用了PostgreSQL。
那是2 02 4 年。
发现它和MySQL不同,你必须使用CURRENT_TIMESTAMP。
有一次忘记了,用NOW()发现时间不对。
我以为服务器出了问题。
后来查资料发现PostgreSQL的NOW()是有时区的,所以得用CURRENT_TIMESTAMP。
这种格式看起来也很烦人,用点表示秒和时区符号。

后来,我有一个客户正在使用Oracle开发2 02 2 年的报表系统。
当时我对Oracle不太熟悉,客户告诉我,要查看当前时间,我必须输入SELECT SYSDATE FROM DUAL;,所以我就照做了。
首先我总是忘记添加FROM DUAL,就报错了。
客户说这是Oracle的规定,必须这样写,不然我怎么知道现在几点了。
SYSDATE不包含时区,因此格式更简单。

想一想,对于同样的需求,你必须依赖于使用哪个数据库,使用哪个函数,并且你必须知道它是否是一个时区,是否是FROM DUAL,这真的很烦人。
有时我想如果所有数据库都使用一个函数就好了,这样我就不必每次都查找信息。
但也没办法,每个公司的制度不一样。

总之,在做SQL获取当前时间的时候,确实需要记住使用哪个数据库,使用哪个函数,否则很容易出错。
过去十年我遇到的许多陷阱都是由时间函数的问题引起的。

MySQL的WEEK函数使用方法解析mysql中week用法

哎呀,让我告诉你MySQL的WEE​​K函数。
这件事确实让我刚接手一个老项目的时候很头疼。
那是2 01 8 年,项目在杭州,数据量不大,但是日期格式完全混乱。

WEEK函数,说白了,就是给你一个日期,并告诉你现在是星期几,或者属于哪一周。
用法是WEEK(日期[,模式])。
“Date”是你的日期,模式是可选的,告诉MySQL你从一周中的哪一天开始计数。

默认情况下,模式为0。
MySQL 假定星期日是一周的开始,星期六是一周的结束。
这与我们习惯的不同。
我们中国人一般习惯从星期一开始。
所以我在处理订单系统的时候,发现直接使用WEEK('2 02 3 -01 -01 ')得到的结果和我想象的不一样。
我认为这是函数中的一个错误。
查了一下,原来默认模式是0。

后来我这样用的:WEEK(date, 1 )。
例如:
sql 选择周('2 02 3 -01 -01 ', 1 ) ASweek_number;
这次,“01 /01 /2 02 3 ”(假设是星期一)返回 1 ,表示这是新年的第一周。
通过这种方式,可以更轻松地比较数据并在以后进行处理。

另一件事是计算周数的方法。
在某些 MySQL 模式下,如果日期是星期日,则可以将本周计到上周。
我记得有一次统计某个月的日期,发现月底少了几天。
查了一下,发现是因为该月的最后一天恰好是周日,WEEK函数计算到了上个月的最后一周。
这个一定要注意,不然统计很容易出错。

总的来说,WEEK功能非常方便,但是使用时需要根据自己的业务需求选择合适的模式。
不要像我一样愚蠢地使用默认值。
结果与业务不对应,调试时间较长。