MySQL中的日期操作

获取当前时间

  • now()
mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-07-26 15:58:46 |
+---------------------+
1 row in set (0.00 sec)
  • sysdate()
mysql> select sysdate()
+---------------------+
| sysdate()           |
+---------------------+
| 2018-07-26 15:59:19 |
+---------------------+
1 row in set (0.00 sec)

两者之间的区别在于:sysdate()是实时获取的

mysql> select now(), sleep(3), now();
+---------------------+----------+---------------------+
| now()               | sleep(3) | now()               |
+---------------------+----------+---------------------+
| 2018-07-26 16:00:14 |        0 | 2018-07-26 16:00:14 |
+---------------------+----------+---------------------+
1 row in set (3.00 sec)

mysql> select sysdate(), sleep(3), sysdate();
+---------------------+----------+---------------------+
| sysdate()           | sleep(3) | sysdate()           |
+---------------------+----------+---------------------+
| 2018-07-26 16:00:30 |        0 | 2018-07-26 16:00:33 |
+---------------------+----------+---------------------+
1 row in set (3.00 sec)
  • current_timestamp, current_timestamp()
mysql> select current_timestamp, current_timestamp();
+---------------------+---------------------+
| current_timestamp   | current_timestamp() |
+---------------------+---------------------+
| 2018-07-26 16:04:01 | 2018-07-26 16:04:01 |
+---------------------+---------------------+
1 row in set (0.00 sec)

日期、时间转换

感觉时间与日期这块有挺多操作的,包括与字符串的相互转换等。

日期/时间转字符串

  • date_format()/time_format()将日期/时间转换成字符串
mysql> select date_format('2018-7-26 16:05:11', '%Y%m%d%H%i%s')
+---------------------------------------------------+
| date_format('2018-7-26 16:05:11', '%Y%m%d%H%i%s') |
+---------------------------------------------------+
| 20180726160511                                    |
+---------------------------------------------------+
1 row in set (0.00 sec)

mysql> select time_format('16:05:11', '%H%i%s');
+-----------------------------------+
| time_format('16:05:11', '%H%i%s') |
+-----------------------------------+
| 160511                            |
+-----------------------------------+
1 row in set (0.00 sec)
  • str_to_date() 将字符串转成日期类型。
mysql> select str_to_date('07/26/2018', '%m/%d/%Y');
+---------------------------------------+
| str_to_date('07/26/2018', '%m/%d/%Y') |
+---------------------------------------+
| 2018-07-26                            |
+---------------------------------------+
1 row in set (0.00 sec)

mysql> select str_to_date('2018/7/26 16:23:33','%Y/%m/%d %H:%i:%s');
+-------------------------------------------------------+
| str_to_date('2018/7/26 16:23:33','%Y/%m/%d %H:%i:%s') |
+-------------------------------------------------------+
| 2018-07-26 16:23:33                                   |
+-------------------------------------------------------+
1 row in set (0.00 sec)

日期时间计算函数

为日期增加一个时间间隔:date_add()

set @dt = now();

select date_add(@dt, interval 1 day); -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add(@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);

select date_add(@dt, interval -1 day); -- sub 1 day

为日期减去一个时间间隔:date_sub()日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)

Read more

Volcano 与 Kubernetes GPU 调度学习笔记

本笔记系统整理 Volcano 调度器、Kubernetes 调度框架、GPU Device Plugin、HAMi 等云原生 AI 调度领域的核心知识,适合用于学习、复习和工程实践参考。 目录 * 第一部分:Volcano 入门 * 1. Volcano 是什么 * 2. 安装与快速使用 * 3. 核心特性一览 * 第二部分:Volcano 整体架构 * 4. Volcano 解决的核心问题 * 5. 整体架构与数据流 * 6. 三层抽象模型 * 第三部分:Volcano 核心实现原理 * 7. Session 机制 * 8. Gang Scheduling 实现 * 9. Queue 与 DRF 公平调度

容器镜像(4):镜像的常用工具箱

容器镜像(4):镜像的常用工具箱

前几篇在讲多架构镜像时已经用过 skopeo 和 crane 做镜像复制,这篇系统整理这两个工具的完整能力,同时介绍几个日常操作镜像时同样好用的工具。 一、skopeo:不依赖 Daemon 的镜像瑞士军刀 skopeo 的核心价值是绕过 Docker daemon,直接与 Registry API 交互。上一篇用它做镜像复制和离线传输,但它的能力远不止于此。 1.1 安装 # Ubuntu / Debian sudo apt install -y skopeo skopeo --version # skopeo version 1.15.1 1.2 inspect:免拉取检查镜像元数据 docker inspect 需要先把镜像拉到本地,skopeo inspect 直接向 Registry

容器镜像(3):多架构镜像构建

容器镜像(3):多架构镜像构建

一、什么是多架构镜像 1.1 OCI Image Index 上一篇介绍了单平台镜像的结构:一个 Manifest 指向 Config 和若干 Layer blob。多架构镜像在此之上多了一层——OCI Image Index(也叫 Manifest List),是一个轻量的索引文件,把多个单平台 Manifest 组织在一起: $ docker manifest inspect golang:1.22-alpine { "schemaVersion": 2, "mediaType": "application/vnd.oci.image.index.v1+json", "manifests&

容器镜像(2):containerd 视角下的镜像

容器镜像(2):containerd 视角下的镜像

一、为什么需要了解 containerd 如果你只用 docker run 跑容器,从来不关心底层,那可以不了解 containerd。但如果你在用 Kubernetes,或者想真正理解"容器运行时"是什么,containerd 是绕不开的。 事实上,当你执行 docker run 的时候,containerd 早就在后台悄悄工作了——Docker 从 1.11 版本开始,就把核心运行时剥离出来交给 containerd 负责。 1.1 Docker 的架构演变 早期的 Docker(1.10 及之前)是一个"大一统"的单体程序:一个 dockerd