語法
Date TO_DATE(INT time)
Date TO_DATE(VARCHAR date)
Date TO_DATE(VARCHAR date,VARCHAR format)
入參
| 參數 | 數據類型 |
|---|---|
| time | INT
說明 表示從1970-1-1到所表示時間之間天數。
|
| date | VARCHAR
說明 默認格式為yyyy-MM-dd。
|
| format | VARCHAR |
功能描述
將INT類型的日期或者VARCHAR類型的日期轉換成DATE類型。
示例
- 測試數據
date1(INT) date2(VARCHAR) date3(VARCHAR) 100 2017-09-15 20170915 - 測試語句
SELECT TO_DATE(date1) as var1, TO_DATE(date2) as var2, TO_DATE(date3,'yyyyMMdd') as var3 FROM T1; - 測試結果
var1(DATE) var2(DATE) var3(DATE) 1970-04-11 2017-09-15 2017-09-15
語法
VARCHAR FROM_UNIXTIME(BIGINT unixtime[, VARCHAR format])
入參
| 參數 | 數據類型 |
|---|---|
| unixtime | BIGINT |
| format | VARCHAR |
說明
- 參數unixtime為長整型,是以秒為單位的時間戳。
- 參數format可選,為日期格式,默認格式為yyyy-MM-dd HH:mm:ss,表示返回VARCHAR類型的符合指定格式的日期,如果有參數為null或解析錯誤,則返回null。
功能描述
返回值為VARCHAR類型的日期值,默認日期格式:yyyy-MM-dd HH:mm:ss,若指定日期格式按指定格式輸出任一輸入參數是NULL,返回NULL。
示例
- 測試數據
unixtime1(BIGINT) nullstr(VARCHAR) 1505404800 null - 測試語句
SELECT FROM_UNIXTIME(unixtime1) as var1, FROM_UNIXTIME(unixtime1,'MMdd-yyyy') as var2, FROM_UNIXTIME(unixtime1,nullstr) as var3 FROM T1; - 測試結果
var1(VARCHAR) var2(VARCHAR) var3(VARCHAR) 2017-09-15 00:00:00 0915-2017 null
語法
INT DATEDIFF(VARCHAR enddate, VARCHAR startdate) INT DATEDIFF(TIMESTAMP enddate, VARCHAR startdate) INT DATEDIFF(VARCHAR enddate, TIMESTAMP startdate) INT DATEDIFF(TIMESTAMP enddate, TIMESTAMP startdate)
入參
| 參數 | 數據類型 |
|---|---|
| startdate | TIMESTAMP或VARCHAR |
| enddate | TIMESTAMP或VARCHAR |
說明 VARCHAR日期格式:yyyy-MM-dd或yyyy-MM-dd HH:mm:ss。
功能描述
計算從enddate到startdate兩個時間的天數差值,返回整數。若有參數為NULL或解析錯誤,返回NULL。
示例
- 測試數據
datetime1(VARCHAR) datetime2(VARCHAR) nullstr(VARCHAR) 2017-10-15 00:00:00 2017-09-15 00:00:00 null - 測試語句
SELECT DATEDIFF(datetime1, datetime2) as int1, DATEDIFF(TIMESTAMP '2017-10-15 23:00:00',datetime2) as int2, DATEDIFF(datetime2,TIMESTAMP '2017-10-15 23:00:00') as int3, DATEDIFF(datetime2,nullstr) as int4, DATEDIFF(nullstr,TIMESTAMP '2017-10-15 23:00:00') as int5, DATEDIFF(nullstr,datetime2) as int6, DATEDIFF(TIMESTAMP '2017-10-15 23:00:00',TIMESTAMP '2017-9-15 00:00:00')as int7 FROM T1; - 測試結果
int1(INT) int2(INT) int3(INT) int4(INT) int5(INT) int6(INT) int7(INT) 30 31 -31 null null null 31
語法
VARCHAR DATE_SUB(VARCHAR startdate, INT days) VARCHAR DATE_SUB(TIMESTAMP time, INT days)
入參
| 參數 | 數據類型 |
|---|---|
| startdate | VARCHAR
說明 VARCHAR類型日期格式:yyyy-MM-dd或yyyy-MM-dd HH:mm:ss。
|
| time | TIMESTAMP |
| days | INT |
功能描述
返回startdate減去days天數的日期。返回VARCHAR類型的yyyy-MM-dd日期格式。如果有參數為null或解析錯誤,返回null。
示例
- 測試數據
date1(VARCHAR) nullstr(VARCHAR) 2017-10-15 null - 測試語句
SELECT DATE_SUB(date1, 30) as var1, DATE_SUB(TIMESTAMP '2017-10-15 23:00:00',30) as var2, DATE_SUB(nullstr,30) as var3 FROM T1; - 測試結果
var1(VARCHAR) var2(VARCHAR) var3(VARCHAR) 2017-09-15 2017-09-15 null
語法
VARCHAR DATE_ADD(VARCHAR startdate, INT days) VARCHAR DATE_ADD(TIMESTAMP time, INT days)
入參
| 參數 | 數據類型 |
|---|---|
| startdate | TIMESTAMP或VARCHAR
說明 VARCHAR類型日期格式:yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss。
|
| enddate | TIMESTAMP |
| days | INT |
功能描述
返回指定startdate日期days天數后的VARCHAR類型日期,返回string格式的日期為yyyy-MM-dd。如果有參數為null或解析錯誤,返回null。
示例
- 測試數據
datetime1(VATCHAR) nullstr(VATCHAR) 2017-09-15 00:00:00 null - 測試語句
SELECT DATE_ADD(datetime1, 30) as var1, DATE_ADD(TIMESTAMP '2017-09-15 23:00:00',30) as var2, DATE_ADD(nullstr,30) as var3 FROM T1; - 測試結果
var1(VARCHAR) var2(VARCHAR) var3(VARCHAR) 2017-10-15 2017-10-15 null
