All Products
Search
Document Center

MaxCompute:FROM_UNIXTIME

Last Updated:Mar 26, 2026

Converts a BIGINT Unix timestamp (seconds since 1970-01-01 00:00:00 UTC) to a DATETIME value.

Syntax

Default mode

datetime from_unixtime(bigint <unixtime>)

Hive-compatible mode (requires set odps.sql.hive.compatible=true;)

string from_unixtime(bigint <unixtime>[, string <fmt>])

Parameters

ParameterRequiredTypeDescription
unixtimeYesBIGINTUnix timestamp, accurate to the second. Valid values: [-62167305600, 253402387200].
fmtNoSTRINGOutput format for the return value. Valid only in Hive-compatible mode. For example, you can specify yyyy-MM-dd or YYYY-MM-dd.
If the input is of the STRING, DOUBLE, or DECIMAL type and your project uses the MaxCompute V1.0 data type edition, the value is implicitly converted to BIGINT before calculation.

Return value

ModeReturn typeFormat
DefaultDATETIMEyyyy-mm-dd hh:mi:ss
Hive-compatible (no fmt)STRINGA date value of the STRING type is returned
Hive-compatible (with fmt)STRINGAs specified by fmt

If unixtime is null, the return value is null.

Usage notes

Week year vs. calendar year in `fmt`

When specifying fmt in Hive-compatible mode, use yyyy for the calendar year and YYYY for the week year. The week year can differ from the calendar year at the start or end of the year. Use YYYY with caution.

Examples

Static values

-- Returns 1973-11-30 05:33:09
select from_unixtime(123456789);

-- Returns 1973-11-30 05:33:09 (implicit conversion from STRING, requires MaxCompute V1.0 data type edition)
set odps.sql.type.system.odps2=false;
select from_unixtime('123456789');

-- Returns null
select from_unixtime(null);

Table data

The following example converts the date4 column (BIGINT) in mf_date_fun_t to DATETIME values.

select date4, from_unixtime(date4) as date4_from_unixtime from mf_date_fun_t;

Result:

+------------+---------------------+
| date4      | date4_from_unixtime |
+------------+---------------------+
| 123456780  | 1973-11-30 05:33:00 |
| 123456781  | 1973-11-30 05:33:01 |
| 123456782  | 1973-11-30 05:33:02 |
| 123456783  | 1973-11-30 05:33:03 |
| 123456784  | 1973-11-30 05:33:04 |
| 123456785  | 1973-11-30 05:33:05 |
| 123456786  | 1973-11-30 05:33:06 |
| 123456787  | 1973-11-30 05:33:07 |
| 123456788  | 1973-11-30 05:33:08 |
| 123456789  | 1973-11-30 05:33:09 |
+------------+---------------------+

Sample data

The examples above use the mf_date_fun_t table. To create and populate the table, run the following statements.

create table if not exists mf_date_fun_t(
    id         int,
    date1      date,
    datetime1  datetime,
    timestamp1 timestamp,
    date2      date,
    datetime2  datetime,
    timestamp2 timestamp,
    date3      string,
    date4      bigint);

insert into mf_date_fun_t values
(1,DATE'2021-11-29',DATETIME'2021-11-29 00:01:00',TIMESTAMP'2021-01-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-20',123456780),
(2,DATE'2021-11-28',DATETIME'2021-11-28 00:02:00',TIMESTAMP'2021-02-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-21',123456781),
(3,DATE'2021-11-27',DATETIME'2021-11-27 00:03:00',TIMESTAMP'2021-03-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-22',123456782),
(4,DATE'2021-11-26',DATETIME'2021-11-26 00:04:00',TIMESTAMP'2021-04-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-23',123456783),
(5,DATE'2021-11-25',DATETIME'2021-11-25 00:05:00',TIMESTAMP'2021-05-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-24',123456784),
(6,DATE'2021-11-24',DATETIME'2021-11-24 00:06:00',TIMESTAMP'2021-06-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-25',123456785),
(7,DATE'2021-11-23',DATETIME'2021-11-23 00:07:00',TIMESTAMP'2021-07-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-26',123456786),
(8,DATE'2021-11-22',DATETIME'2021-11-22 00:08:00',TIMESTAMP'2021-08-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-27',123456787),
(9,DATE'2021-11-21',DATETIME'2021-11-21 00:09:00',TIMESTAMP'2021-09-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-28',123456788),
(10,DATE'2021-11-20',DATETIME'2021-11-20 00:10:00',TIMESTAMP'2021-10-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-29',123456789);

Query data from the mf_date_fun_t table:

select * from mf_date_fun_t;
-- The following result is returned:
+------+-------+------------+------------+-------+------------+------------+-------+------------+
| id   | date1 | datetime1  | timestamp1 | date2 | datetime2  | timestamp2 | date3 | date4      |
+------+-------+------------+------------+-------+------------+------------+-------+------------+
| 1    | 2021-11-29 | 2021-11-29 00:01:00 | 2021-01-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-20 | 123456780  |
| 2    | 2021-11-28 | 2021-11-28 00:02:00 | 2021-02-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-21 | 123456781  |
| 3    | 2021-11-27 | 2021-11-27 00:03:00 | 2021-03-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-22 | 123456782  |
| 4    | 2021-11-26 | 2021-11-26 00:04:00 | 2021-04-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-23 | 123456783  |
| 5    | 2021-11-25 | 2021-11-25 00:05:00 | 2021-05-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-24 | 123456784  |
| 6    | 2021-11-24 | 2021-11-24 00:06:00 | 2021-06-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-25 | 123456785  |
| 7    | 2021-11-23 | 2021-11-23 00:07:00 | 2021-07-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-26 | 123456786  |
| 8    | 2021-11-22 | 2021-11-22 00:08:00 | 2021-08-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-27 | 123456787  |
| 9    | 2021-11-21 | 2021-11-21 00:09:00 | 2021-09-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-28 | 123456788  |
| 10   | 2021-11-20 | 2021-11-20 00:10:00 | 2021-10-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-29 | 123456789  |
+------+-------+------------+------------+-------+------------+------------+-------+------------+

Related functions

FROM_UNIXTIME is a date function. For more information about date computing and conversion functions, see Date functions.