VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

FROM_UNIXTIME

功能描述

FROM_UNIXTIME函数用于将数值格式的时间戳转换为字符串类型的日期时间格式。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。
  • 该功能仅在Vastbase G100 V2.2 Build 10(Patch No.9)及以后版本支持。

语法格式

FROM_UNIXTIME(unix_timestamp[,format])
  • 当函数仅传入第一个参数时返回值类型为datetime。
  • 当函数传入两个参数时返回值类型为text。

参数说明

  • unix_timestamp

    数值格式的时间戳,代表距离'1970-01-01 00:00:00'UTC的秒数。

  • format

    要转换的格式,可选参数。

    • 不传入这个参数时,函数返回'1970-01-01 00:00:00' UTC + unix_timestamp + 当前时区偏移对应的datetime

    • 传入这个参数时,函数会将datetime根据传入的参数进行格式化,格式化的方法与DATE_FORMAT函数相同。

示例

前置步骤: 创建并切换至兼容模式为MySQL的数据库db_mysql下。

create database db_mysql dbcompatibility 'B';
\c db_mysql;

示例1: 直接调用FROM_UNIXTIME函数。

  • 不指定format参数。

    select from_unixtime(2147483647);
    

    返回结果如下所示:

        from_unixtime
    ---------------------
     2038-01-19 11:14:07
    (1 row)
    
  • 指定format参数。

    select from_unixtime(2147483647,'%Y-%m-%d %H:%i:%s');
    

    返回结果如下所示:

        from_unixtime
    ---------------------
     2038-01-19 11:14:07
    (1 row)
    

示例2: 在DML语句中使用FROM_UNIXTIME函数。

1、创建测试表并插入数据。

CREATE TABLE test_1143823 (ts DATETIME,dt DATETIME);
INSERT INTO test_1143823 VALUES('2020-12-01 12:30:00', '2021-12-01 12:30:00');
INSERT INTO test_1143823 VALUES('2020-12-01 13:30:00', '2021-12-01 13:30:00');
INSERT INTO test_1143823 VALUES('2020-12-01 14:30:00', '2021-12-01 14:30:00');

2、在INSERT/UPDATE/DELETE语句中使用FROM_UNIXTIME函数。

INSERT INTO test_1143823 (ts) VALUES (FROM_UNIXTIME(UNIX_TIMESTAMP('2020-12-02 11:30:00')));
INSERT INTO test_1143823 (ts) VALUES (FROM_UNIXTIME(UNIX_TIMESTAMP('2020-12-03 11:30:00')));
UPDATE test_1143823
SET ts = FROM_UNIXTIME(UNIX_TIMESTAMP('2020-12-04 11:30:00'))
WHERE dt = (FROM_UNIXTIME(UNIX_TIMESTAMP('2021-12-01 14:30:00')));
DELETE FROM test_1143823
WHERE dt = FROM_UNIXTIME(UNIX_TIMESTAMP('2021-12-01 13:30:00'));

3、查询表test_1143823的数据。

SELECT * FROM test_1143823;

返回结果如下所示:

         ts          |         dt
---------------------+---------------------
 2020-12-01 12:30:00 | 2021-12-01 12:30:00
 2020-12-02 11:30:00 |
 2020-12-03 11:30:00 |
 2020-12-04 11:30:00 | 2021-12-01 14:30:00
(4 rows)