Unix时间戳

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Unix时间戳

关于Unix时间戳(Unix timestamp)

时间戳(Timestamp) 也被称作为 Unix时间戳(Unix timestamp),或称Unix时间(Unix time)POSIX时间(POSIX time),是一种时间表示方式,定义为从世界协调时间(Coordinated Universal Time,即UTC)或称 格林威治时间1970年01月01日00时00分00秒(00:00:00 GMT) 起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

具体数值实例

2022-03-07 08:49:15
秒: 1646614155
毫秒: 1646614155112
微秒: 1646614155112986
纳秒: 1646614155112986400

Go

// 秒fmt.Printf("时间戳(秒):%v;\n", time.Now().Unix())
fmt.Printf("时间戳(纳秒转换为秒):%v;\n", time.Now().UnixNano()/1e9)
// 毫秒fmt.Printf("时间戳(毫秒):%v;\n", time.Now().UnixMilli())
fmt.Printf("时间戳(纳秒转换为毫秒):%v;\n", time.Now().UnixNano()/1e6)
// 微秒fmt.Printf("时间戳(微秒):%v;\n", time.Now().UnixMicro())
fmt.Printf("时间戳(纳秒转换为微秒):%v;\n", time.Now().UnixNano()/1e3)
// 纳秒fmt.Printf("时间戳(纳秒):%v;\n", time.Now().UnixNano())

PostgreSQL

-- 秒select(extract(EPOCH FROM CURRENT_TIMESTAMP))::bigint;-- 毫秒select(extract(EPOCH FROM CURRENT_TIMESTAMP)*1000)::bigint;-- 微秒select(extract(EPOCH FROM CURRENT_TIMESTAMP)*1000*1000)::bigint;-- 纳秒select(extract(EPOCH FROM CURRENT_TIMESTAMP)*1000*1000*1000)::bigint;

在PostgreSQL里面要实现更新表立即更新update_time/updated_at字段,要比MySQL麻烦一点点,需要自己实现一个函数,并且绑定一个触发器到表上.不像MySQL开箱即用.不过,也算不上特别的麻烦.

-- 创建测试用的表CREATETABLE IF NOT EXISTS test
(    id          BIGSERIAL NOTNULL,    title       VARCHAR(255),    create_time BIGINTNOTNULL DEFAULT (EXTRACT(EPOCH FROM CURRENT_TIMESTAMP)*1000)::BIGINT,    update_time BIGINTNOTNULL DEFAULT (EXTRACT(EPOCH FROM CURRENT_TIMESTAMP)*1000)::BIGINT,    create_at   TIMESTAMPNOTNULL DEFAULT CURRENT_TIMESTAMP,    updated_at  TIMESTAMPNOTNULL DEFAULT CURRENT_TIMESTAMP,    CONSTRAINT test_pkey PRIMARY KEY (id));-- 创建函数CREATEOR REPLACE FUNCTION upd_timestamp() RETURNS TRIGGER AS$$
BEGIN    new.updated_at:= CURRENT_TIMESTAMP;    new.update_time:=(EXTRACT(EPOCH FROM CURRENT_TIMESTAMP)*1000)::BIGINT;    RETURN new;END;$$
    LANGUAGE 'plpgsql';-- 创建触发器CREATE TRIGGER t_test
    BEFORE UPDATEON test
    FOR EACH ROW
EXECUTE PROCEDURE upd_timestamp();

MySQL

MySQL最高只支持到微秒

-- 秒SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP);-- 毫秒SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP(3));-- 微秒SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6));

MySQL/MariaDB下面ON UPDATE UNIX_TIMESTAMP语法不合法,也跟PostgreSQL一样,需要用触发器的方式达成.

-- 创建测试用的表CREATETABLE IF NOT EXISTS test
(    id          BIGINTNOTNULL,    title       VARCHAR(255),    create_time BIGINTNOTNULL DEFAULT UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6)),    update_time BIGINTNOTNULL DEFAULT UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6)),    create_at   TIMESTAMP(6)NOTNULL DEFAULT CURRENT_TIMESTAMP(6),    updated_at  TIMESTAMP(6)NOTNULL DEFAULT CURRENT_TIMESTAMP(6)ONUPDATE CURRENT_TIMESTAMP(6),    CONSTRAINT test_pkey PRIMARY KEY (id));
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
Unix
Unix时间戳1970Java与Unix时间戳互转
Unix时间戳1970Java与Unix时间戳互转
100 0
|
Unix
鸿蒙将unix时间戳转换为string类型
鸿蒙将unix时间戳转换为string类型
201 0
|
Ubuntu Unix Python
[oeasy]python0024_unix时间戳_epoch_localtime_asctime_PosixTime_unix纪年法
[oeasy]python0024_unix时间戳_epoch_localtime_asctime_PosixTime_unix纪年法
162 2
|
Unix
遇到的各种时间类型:UTC时间、GMT时间、本地时间、Unix时间戳
每次遇到各种时间傻傻分不清,特意记录一下,给自己提个醒。
565 0
|
Unix API C语言
UNIX时间戳和北京时间的相互转换
UNIX时间戳和北京时间的相互转换
911 0
UNIX时间戳和北京时间的相互转换
|
关系型数据库 MySQL Unix
mysql,如何在Unix和Mysql时间戳之间进行转换?
mysql,如何在Unix和Mysql时间戳之间进行转换?
200 0
|
SQL 存储 Unix
【Hive】FROM_UNIXTIME() 和 UNIX_TIMESTAMP()时间戳函数用法
【Hive】FROM_UNIXTIME() 和 UNIX_TIMESTAMP()时间戳函数用法
2037 0
|
存储 前端开发 Unix
Mysql - 如何存储 10位、13位的 unix 时间戳?
Mysql - 如何存储 10位、13位的 unix 时间戳?
618 0
|
搜索推荐 Java Unix
【小知识大用处】Java与Unix时间戳互转
【小知识大用处】Java与Unix时间戳互转
497 0
|
Unix 数据安全/隐私保护 数据格式
Unix时间戳 ,时间戳在线转换
在线工具https://oktools.net Unix时间戳https://oktools.net/timestamp JSON格式化https://oktools.net/json Base64编码https://oktools.
3399 0