Unix时间戳

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 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));
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8月前
|
Unix
Unix时间戳1970Java与Unix时间戳互转
Unix时间戳1970Java与Unix时间戳互转
56 0
|
6月前
|
Unix
鸿蒙将unix时间戳转换为string类型
鸿蒙将unix时间戳转换为string类型
110 0
|
Ubuntu Unix Python
[oeasy]python0024_unix时间戳_epoch_localtime_asctime_PosixTime_unix纪年法
[oeasy]python0024_unix时间戳_epoch_localtime_asctime_PosixTime_unix纪年法
112 2
|
Unix
遇到的各种时间类型:UTC时间、GMT时间、本地时间、Unix时间戳
每次遇到各种时间傻傻分不清,特意记录一下,给自己提个醒。
427 0
|
Unix API C语言
UNIX时间戳和北京时间的相互转换
UNIX时间戳和北京时间的相互转换
722 0
UNIX时间戳和北京时间的相互转换
|
关系型数据库 MySQL Unix
mysql,如何在Unix和Mysql时间戳之间进行转换?
mysql,如何在Unix和Mysql时间戳之间进行转换?
161 0
|
SQL 存储 Unix
【Hive】FROM_UNIXTIME() 和 UNIX_TIMESTAMP()时间戳函数用法
【Hive】FROM_UNIXTIME() 和 UNIX_TIMESTAMP()时间戳函数用法
1581 0
|
存储 前端开发 Unix
Mysql - 如何存储 10位、13位的 unix 时间戳?
Mysql - 如何存储 10位、13位的 unix 时间戳?
532 0
|
搜索推荐 Java Unix
【小知识大用处】Java与Unix时间戳互转
【小知识大用处】Java与Unix时间戳互转
411 0
|
Unix 数据安全/隐私保护 数据格式
Unix时间戳 ,时间戳在线转换
在线工具https://oktools.net Unix时间戳https://oktools.net/timestamp JSON格式化https://oktools.net/json Base64编码https://oktools.
3219 0