El contenido no se encuentra disponible en el idioma seleccionado. Estamos trabajando continuamente para agregar más idiomas. Gracias por su apoyo.

Compute
Elastic Cloud Server
Huawei Cloud Flexus
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Networking
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Management & Governance
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
OneAccess
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
IAM Identity Center
Cloud Operations Center
Resource Governance Center
Migration
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Analytics
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
Data Lake Factory
DataArts Lake Formation
IoT
IoT Device Access
Others
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Security & Compliance
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Edge Security
Managed Threat Detection
Blockchain
Blockchain Service
Web3 Node Engine Service
Media Services
Media Processing Center
Video On Demand
Live
SparkRTC
MetaStudio
Storage
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service Turbo
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Databases
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
Multi-Site High Availability Service
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Business Applications
Workspace
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Video Intelligent Analysis Service
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Content Delivery & Edge Computing
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Intelligent EdgeCloud
Solutions
SAP Cloud
High Performance Computing
Developer Services
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
CodeArts Repo
Cloud Application Engine
MacroVerse aPaaS
KooMessage
KooPhone
KooDrive

Date and Time Functions and Operators

Updated on 2024-12-13 GMT+08:00

Date and Time Operators

Operator

Example

Result

+

date '2012-08-08' + interval '2' day

2012-08-10

+

time '01:00' + interval '3' hour

04:00:00.000

+

timestamp '2012-08-08 01:00' + interval '29' hour

2012-08-09 06:00:00.000

+

timestamp '2012-10-31 01:00' + interval '1' month

2012-11-30 01:00:00.000

+

interval '2' day + interval '3' hour

2 03:00:00.000

+

interval '3' year + interval '5' month

3-5

-

date '2012-08-08' - interval '2' day

2012-08-06

-

time '01:00' - interval '3' hour

22:00:00.000

-

timestamp '2012-08-08 01:00' - interval '29' hour

2012-08-06 20:00:00.000

-

timestamp '2012-10-31 01:00' - interval '1' month

2012-09-30 01:00:00.000

-

interval '2' day - interval '3' hour

1 21:00:00.000

-

interval '3' year - interval '5' month

2-7

Time Zone Conversion

Operator: AT TIME ZONE sets the time zone of a timestamp.

SELECT timestamp '2012-10-31 01:00 UTC';-- 2012-10-31 01:00:00.000 UTC
SELECT timestamp '2012-10-31 01:00 UTC' AT TIME ZONE 'Asia/Singapore'; -- 2012-10-30 09:00:00.000 Asia/Singapore

Date/Time Functions

  • current_date -> date

    Returns the current date (UTC time zone).

    select current_date; -- 2020-07-25 
  • current_time -> time with time zone

    Returns the current time (UTC time zone).

    select current_time;-- 16:58:48.601+08:00
  • current_timestamp -> timestamp with time zone

    Returns the current timestamp (current time zone).

    select current_timestamp; -- 2020-07-25 11:50:27.350 Asia/Singapore
  • current_timezone() → varchar

    Returns the current time zone.

    select current_timezone();-- Asia/Singapore 
  • date(x) → date

    Converts a date literal to a variable of the date type.

    select date('2020-07-25');-- 2020-07-25
  • from_iso8601_timestamp(string) → timestamp with time zone

    Converts a timestamp literal in ISO 8601 format into a timestamp variable with a time zone.

    SELECT from_iso8601_timestamp('2020-05-11');-- 2020-05-11 00:00:00.000 Asia/Singapore
    SELECT from_iso8601_timestamp('2020-05-11T11:15:05'); -- 2020-05-11 11:15:05.000 Asia/Singapore 
    SELECT from_iso8601_timestamp('2020-05-11T11:15:05.055+01:00');-- 2020-05-11 11:15:05.055 +01:00
  • from_iso8601_date(string) → date

    Converts a date literal in ISO 8601 format into a variable of the date type.

    SELECT from_iso8601_date('2020-05-11');-- 2020-05-11
    SELECT from_iso8601_date('2020-W10');-- 2020-03-02
    SELECT from_iso8601_date('2020-123');-- 2020-05-02
  • from_unixtime(unixtime) → timestamp with time zone

    Converts a UNIX timestamp to a timestamp variable (current time zone).

    Select FROM_UNIXTIME(1.595658735E9); -- 2020-07-25 14:32:15.000 Asia/Singapore
    Select FROM_UNIXTIME(875996580); --1997-10-05 04:23:00.000 Asia/Singapore
  • from_unixtime(unixtime, string) → timestamp with time zone

    Converts a UNIX timestamp into a timestamp variable. The time zone option can be contained.

    select from_unixtime(1.595658735E9, 'Asia/Singapore');-- 2020-07-25 14:32:15.000 Asia/Singapore 
  • from_unixtime(unixtime, hours, minutes) → timestamp with time zone

    Converts a UNIX timestamp to a timestamp variable with a time zone. hours and minutes indicate the time zone offsets.

    select from_unixtime(1.595658735E9, 8, 30);-- 2020-07-25 14:32:15.000 +08:30
  • localtime -> time

    Obtains the current time

    select localtime;-- 14:16:13.096 
  • localtimestamp -> timestamp

    Obtains the current timestamps.

    select localtimestamp;-- 2020-07-25 14:17:00.567 
  • months_between(date1, date2) -> double

    Return the number of months between date1 and date2. If date1 is later than date2, the result is a positive number. Otherwise, the result is a negative number. If the days of the two dates are the same, the result is an integer. Otherwise, the decimal part is calculated based on the difference between the hour, minute, and second (31 days of each month). The type of date1 and date2 can be date, timestamp, or a string in the yyyy-MM-dd or yyyy-MM-dd HH:mm:ss format.

    select months_between('2020-02-28 10:30:00', '2021-10-30');-- -20.05040323
    select months_between('2021-01-30', '2020-10-30'); -- 3.0
  • now() → timestamp with time zone

    Obtains the current time, which is the alias of current_timestamp.

    select now();-- 2020-07-25 14:39:39.842 Asia/Singapore
  • unix_timestamp()

    Obtains the current unix timestamp.

    select unix_timestamp(); -- 1600930503
  • to_iso8601(x) → varchar

    Converts x into a character string in the ISO 8601 format. x can be DATE or TIMESTAMP [with time zone].

    select to_iso8601(date '2020-07-25'); -- 2020-07-25
    select to_iso8601(timestamp '2020-07-25 15:22:15.214'); -- 2020-07-25T15:22:15.214
  • to_milliseconds(interval) → bigint

    Obtains the number of milliseconds since 00:00 on the current day.

    select to_milliseconds(interval '8' day to second);-- 691200000
  • to_unixtime(timestamp) → double

    Converts the timestamp to the UNIX time.

    select to_unixtime(cast('2020-07-25 14:32:15.147' as timestamp));-- 1.595658735147E9
  • trunc(string date, string format) →string

    Truncates a date value based on the format. The supported format is MONTH/MON/MM or YEAR/YYYY/YY, QUARTER/Q

    select trunc(date '2020-07-08','yy');-- 2020-01-01
    select trunc(date '2020-07-08','MM');-- 2020-07-01
    NOTE:

    You can use the parentheses () when using the following SQL standard functions:

    • current_date
    • current_time
    • current_timestamp
    • localtime
    • Localtimestamp

    For example: select current_date ();

Truncation Function

Similar to the operation of reserving decimal places, the date_trunc function supports the following units:

Unit

Value After Truncation

second

2001-08-22 03:04:05.000

minute

2001-08-22 03:04:00.000

hour

2001-08-22 03:00:00.000

day

2001-08-22 00:00:00.000

week

2001-08-20 00:00:00.000

month

2001-08-01 00:00:00.000

quarter

2001-07-01 00:00:00.000

year

2001-01-01 00:00:00.000

In the preceding example, the timestamp 2001-08-22 03:04:05.321 is used as the input.

date_trunc(unit, x) → [same as input]

Returns the value of x after the unit.

select date_trunc('hour', timestamp '2001-08-22 03:04:05.321'); -- 2001-08-22 03:00:00.000

Interval Functions

The functions in this chapter support the following interval units:

Unit

Description

second

Seconds

minute

Minutes

hour

Hours

day

Days

week

Weeks

month

Months

quarter

Quarters of a year

year

Years

  • date_add(unit, value, timestamp) → [same as input]

    Add value units to timestamp. If you want to perform the subtraction operation, you can assign a negative value to the value.

    SELECT date_add('second', 86, TIMESTAMP '2020-03-01 00:00:00');-- 2020-03-01 00:01:26
    SELECT date_add('hour', 9, TIMESTAMP '2020-03-01 00:00:00');-- 2020-03-01 09:00:00
    SELECT date_add('day', -1, TIMESTAMP '2020-03-01 00:00:00 UTC');-- 2020-02-29 00:00:00 UTC
  • date_diff(unit, timestamp1, timestamp2) → bigint

    Returns the value of timestamp2 minus timestamp1. The unit of the value is unit.

    The value of unit is a character string. For example, day, week, and year.

    SELECT date_diff('second', TIMESTAMP '2020-03-01 00:00:00', TIMESTAMP '2020-03-02 00:00:00');-- 86400
    SELECT date_diff('hour', TIMESTAMP '2020-03-01 00:00:00 UTC', TIMESTAMP '2020-03-02 00:00:00 UTC');-- 24
    SELECT date_diff('day', DATE '2020-03-01', DATE '2020-03-02');-- 1
    SELECT date_diff('second', TIMESTAMP '2020-06-01 12:30:45.000', TIMESTAMP '2020-06-02 12:30:45.123');-- 86400
    SELECT date_diff('millisecond', TIMESTAMP '2020-06-01 12:30:45.000', TIMESTAMP '2020-06-02 12:30:45.123');-- 86400123
  • adddate(date, bigint)→ [same as input]
    Description: Date addition. The input type can be date or timestamp, indicating that the date is added or deducted. If the input type is subtraction, the value of bigint is negative.
    select ADDDATE(timestamp '2020-07-04 15:22:15.124',-5);-- 2020-06-29 15:22:15.124 
    select ADDDATE(date '2020-07-24',5); -- 2020-07-29

Duration Function

The duration can use the following units:

Unit

Description

ns

nanosecond

us

microsecond

ms

millisecond

s

second

m

minute

h

hour

d

day

parse_duration(string) → interval

SELECT parse_duration('42.8ms'); -- 0 00:00:00.043
SELECT parse_duration('3.81 d'); -- 3 19:26:24.000
SELECT parse_duration('5m'); -- 0 00:05:00.000

MySQL Date Functions

The formatted strings that are compatible with the MySQL date_parse and str_to_date methods in this section.

  • date_format(timestamp, format) → varchar

    Uses format to format timestamp.

    select date_format(timestamp '2020-07-22 15:00:15', '%Y/%m/%d');-- 2020/07/22
  • date_parse(string, format) → timestamp

    Parses the date literals using format.

    select date_parse('2020/07/20', '%Y/%m/%d');-- 2020-07-20 00:00:00.000 

The following table is based on the MySQL manual and describes various format descriptors.

Format Descriptor

Description

%a

Day in a week (Sun .. Sat)

%b

Month (Jan .. Dec)

%c

Month (1 .. 12)

%D

Day of the month (0th, 1st, 2nd, 3rd, ...)

%d

Day in the month (01.. 31) (Two digits. Zeros are added before the single digits.)

%e

Day in the month (1 .. 31)

%f

Seconds after the decimal point (6 digits for printing: 000000 .. 999000; 1 - 9 digits for parsing: 0 .. 999999999)

%H

Hour (00 .. 23)

%h

Hour (01.. 12)

%I

Hour (01.. 12)

%i

Minute, number (00 .. (59)

%j

Day of the year (001 .. 366)

%k

Hour (0 .. 23)

%l

Hour (1.. 12)

%M

Month name (January .. December)

%m

Month, number (01 .. 12)

%p

AM or PM

%r

Time in the 12-hour format (hh:mm:ss followed by AM or PM)

%S

Second (00 .. 59)

%s

Second (00 .. 59)

%T

Time in the 24-hour format (hh:mm:ss)

%U

Week (00 .. 53) Sunday is the first day of a week.

%u

Week (00 .. 53) Monday is the first day of a week.

%V

Week (01.. 53) Sunday is the first day of a week. Used together with %X.

%v

Week (01 .. 53) Monday is the first day of a week. Used together with %X.

%W

Day of the week (Sunday .. Saturday)

%w

Day of the week (0.. 6) Sunday is the first day of a week.

%X

Year, a four-digit number. The first day is Sunday.

%x

Year, a four-digit number. The first day is Monday.

%Y

Year, a four-digit number.

%y

Year. The value is a two-digit number ranging from 1970 to 2069.

%%

Indicates the character '%'.

Example:

select date_format(timestamp '2020-07-25 15:04:00.124','%j day of a year with English suffix (0th, 1st, 2nd, 3rd...),%m month %d day,%p %T %W');
                       _col0                       
---------------------------------------------------
 207th day of the year, 25th day of July, PM 15:04:00 Saturday
(1 row)
NOTE:

These format descriptors are not supported: %D, %U, %u, %V, %w, %X.

  • date_format(timestamp, format) → varchar

    Uses format to format timestamp.

  • date_parse(string, format) → timestamp

    Parses the timestamp character string.

    select date_parse('2020/07/20', '%Y/%m/%d');-- 2020-07-20 00:00:00.000 

Java Date Functions

The formatting strings used in this section are compatible with the Java SimpleDateFormat style.

  • format_datetime(timestamp, format) → varchar

    Uses format to format timestamp.

  • parse_datetime(string, format) → timestamp with time zone

    Format a string to timestamp with time zone in a specified format.

    select parse_datetime('1960/01/22 03:04', 'yyyy/MM/dd HH:mm');
                     _col0                 
    ---------------------------------------
     1960-01-22 03:04:00.000 Asia/Shanghai 
    (1 row)

Common Extraction Functions

Domain

Description

YEAR

year()

QUARTER

quarter()

MONTH

month()

WEEK

week()

DAY

day()

DAY_OF_MONTH

day_of_month()

DAY_OF_WEEK

day_of_week()

DOW

day_of_week()

DAY_OF_YEAR

day_of_year()

DOY

day_of_year()

YEAR_OF_WEEK

year_of_week()

YOW

year_of_week()

HOUR

hour()

MINUTE

minute()

SECOND

second()

TIMEZONE_HOUR

timezone_hour()

TIMEZONE_MINUTE

timezone_minute()

Example:

select second(timestamp '2020-02-12 15:32:33.215');-- 33
select timezone_hour(timestamp '2020-02-12 15:32:33.215');-- 8
  • MONTHNAME(date)

    Description: Obtains the month name.

    SELECT monthname(timestamp '2019-09-09 12:12:12.000');-- SEPTEMBER
    SELECT monthname(date '2019-07-09');--JULY
  • extract(field FROM x) → bigint

    Description: Returns the field from x. For details about the corresponding field, see the table in this document.

    select extract(YOW FROM timestamp '2020-02-12 15:32:33.215');-- 2020
    select extract(SECOND FROM timestamp '2020-02-12 15:32:33.215');-- 33
    select extract(DOY FROM timestamp '2020-02-12 15:32:33.215');--43

Function

Example

Description

SECONDS_ADD(TIMESTAMP date, INT seconds)

SELECT seconds_add(timestamp '2019-09-09 12:12:12.000', 10);

The time is added in seconds.

SECONDS_SUB(TIMESTAMP date, INT seconds)

SELECT seconds_sub(timestamp '2019-09-09 12:12:12.000', 10);

Subtracts time in seconds.

MINUTES_ADD(TIMESTAMP date, INT minutes)

SELECT MINUTES_ADD(timestamp '2019-09-09 12:12:12.000', 10);

Add the time in the unit of minute.

MINUTES_SUB(TIMESTAMP date, INT minutes)

SELECT MINUTES_SUB(timestamp '2019-09-09 12:12:12.000', 10);

The time is subtracted in the unit of minute.

HOURS_ADD(TIMESTAMP date, INT hours)

SELECT HOURS_ADD(timestamp '2019-09-09 12:12:12.000', 1);

Add the time in the unit of hour.

HOURS_SUB(TIMESTAMP date, INT hours)

SELECT HOURS_SUB(timestamp '2019-09-09 12:12:12.000', 1);

The time is subtracted in hours.

  • last_day(timestamp) -> date

    Description: Returns the last day of each month based on the specified timestamp.

    SELECT last_day(timestamp '2019-09-09 12:12:12.000');--  2019-09-30
    SELECT last_day(date '2019-07-09');--2019-07-31
  • add_months(timestamp) -> [same as input]

    Description: Returns the correct date by adding the specified date to the specified month.

    SELECT add_months(timestamp'2019-09-09 00:00:00.000', 11);-- 2020-08-09 00:00:00.000
  • next_day() (timestamp, string) -> date

    Description: Returns the next day of the specified weekday based on the specified date.

    SELECT next_day(timestamp'2019-09-09 00:00:00.000', 'monday');-- 2019-09-16 00:00:00.000
    SELECT next_day(date'2019-09-09', 'monday');-- 2019-09-16
  • numtoday(integer) -> BIGINT

    Description: Converts transferred integer values to values of the day type, for example, BIGINT.

    SELECT numtoday(2);-- 2

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback