TO_DATE(Lakehouse v1)
将表达式转换为日期,包括:
-
将时间戳格式的字符串转换为日期:从给定字符串中提取日期。
-
将整数转换为日期:将整数解释为相对于 Unix 纪元(1970 年 1 月 1 日午夜)之前(负数)或之后(正数)的天数。请注意,日期值的范围为
1000-01-01至9999-12-31。如果运行 “SELECT TO_DATE(9999999999999999999)”,PlaidCloud Lakehouse 会返回错误。 -
使用指定格式将字符串转换为日期:该函数接受两个参数,按第二个字符串中指定的格式将第一个字符串转换为日期。要在 PlaidCloud Lakehouse 中自定义日期和时间格式,可使用格式说明符。有关支持的说明符的完整列表,请参阅格式化日期和时间。
日期格式使用 strftime 规范表示。请参阅快速参考。
另请参阅:TO_TIMESTAMP
Strftime 参数
Section titled “Strftime 参数”| 示例 | 输出 |
|---|---|
%m/%d/%Y |
06/05/2013 |
%A, %B %e, %Y |
Sunday, June 5, 2013 |
%b %e %a |
Jun 5 Sun |
| 示例 | 输出 |
|---|---|
%H:%M |
23:05 |
%I:%M %p |
11:05 PM |
| 符号 | 示例 | 区域 |
|---|---|---|
%a |
Sun |
星期 |
%A |
Sunday |
|
%w |
0..6 (星期日为 0) |
|
| — | — | — |
%y |
13 |
年 |
%Y |
2013 |
|
| — | — | — |
%b |
Jan |
月 |
%B |
January |
|
%m |
01..12 |
|
| — | — | — |
%d |
01..31 |
日 |
%e |
1..31 |
| 符号 | 示例 | 区域 |
|---|---|---|
%l |
1 |
小时 |
%H |
00..23 |
24 小时制小时 |
%I |
01..12 |
12 小时制小时 |
| – | — | — |
%M |
00..59 |
分钟 |
%S |
00..60 |
秒 |
| — | — | — |
%p |
AM |
上午或下午 |
%Z |
+08 |
时区 |
| — | — | — |
%j |
001..366 |
一年中的第几天 |
%% |
% |
字面 % 字符 |
Analyze 语法
Section titled “Analyze 语法”func.to_date('<timestamp_expr>')func.to_date(<integer>)func.to_date('<string>', '<format>')Analyze 示例
Section titled “Analyze 示例”func.typeof(func.to_date('2022-01-02')), func.typeof(func.str_to_date('2022-01-02'))
┌───────────────────────────────────────────────────────────────────────────────────────┐│ func.typeof(func.to_date('2022-01-02')) │ func.typeof(func.str_to_date('2022-01-02')) │├─────────────────────────────────────────┼─────────────────────────────────────────────┤│ DATE │ DATE │└───────────────────────────────────────────────────────────────────────────────────────┘SQL 语法
Section titled “SQL 语法”-- Convert a timestamp-format stringTO_DATE('<timestamp_expr>')
-- Convert an integerTO_DATE(<integer>)
-- Convert a string using the given formatTO_DATE('<string>', '<format>')函数返回“YYYY-MM-DD”格式的日期:
SELECT TYPEOF(TO_DATE('2022-01-02')), TYPEOF(STR_TO_DATE('2022-01-02'));
┌───────────────────────────────────────────────────────────────────┐│ typeof(to_date('2022-01-02')) │ typeof(str_to_date('2022-01-02')) │├───────────────────────────────┼───────────────────────────────────┤│ DATE │ DATE │└───────────────────────────────────────────────────────────────────┘要将返回的日期转换回字符串,请使用 DATE_FORMAT 函数:
SELECT DATE_FORMAT(TO_DATE('2022-01-02')) AS dt, TYPEOF(dt);
┌─────────────────────────┐│ dt │ typeof(dt) │├────────────┼────────────┤│ 2022-01-02 │ VARCHAR │└─────────────────────────┘SQL 示例
Section titled “SQL 示例”SQL 示例 1:转换时间戳格式的字符串
Section titled “SQL 示例 1:转换时间戳格式的字符串”SELECT TO_DATE('2022-01-02T01:12:00+07:00'), STR_TO_DATE('2022-01-02T01:12:00+07:00');
┌─────────────────────────────────────────────────────────────────────────────────┐│ to_date('2022-01-02t01:12:00+07:00') │ str_to_date('2022-01-02t01:12:00+07:00') │├──────────────────────────────────────┼──────────────────────────────────────────┤│ 2022-01-01 │ 2022-01-01 │└─────────────────────────────────────────────────────────────────────────────────┘
SELECT TO_DATE('2022-01-02'), STR_TO_DATE('2022-01-02');
┌───────────────────────────────────────────────────┐│ to_date('2022-01-02') │ str_to_date('2022-01-02') │├───────────────────────┼───────────────────────────┤│ 2022-01-02 │ 2022-01-02 │└───────────────────────────────────────────────────┘SQL 示例 2:转换整数
Section titled “SQL 示例 2:转换整数”SELECT TO_DATE(1), STR_TO_DATE(1), TO_DATE(-1), STR_TO_DATE(-1);
┌───────────────────────────────────────────────────────────────────┐│ to_date(1) │ str_to_date(1) │ to_date((- 1)) │ str_to_date((- 1)) ││ Date │ Date │ Date │ Date │├────────────┼────────────────┼────────────────┼────────────────────┤│ 1970-01-02 │ 1970-01-02 │ 1969-12-31 │ 1969-12-31 │└───────────────────────────────────────────────────────────────────┘SQL 示例 3:使用给定格式转换字符串
Section titled “SQL 示例 3:使用给定格式转换字符串”SELECT TO_DATE('12/25/2022','%m/%d/%Y'), STR_TO_DATE('12/25/2022','%m/%d/%Y');
┌───────────────────────────────────────────────────────────────────────────┐│ to_date('12/25/2022', '%m/%d/%y') │ str_to_date('12/25/2022', '%m/%d/%y') │├───────────────────────────────────┼───────────────────────────────────────┤│ 2022-12-25 │ 2022-12-25 │└───────────────────────────────────────────────────────────────────────────┘