DATEFORMAT 和 TIMEFORMAT 字符串
COPY 命令中的 DATEFORMAT 和 TIMEFORMAT 选项采用格式字符串。这些字符串可包含日期时间分隔符(如 '-'、'/' 或 ':')以及下面的日期部分和时间部分。
如果 COPY 命令未识别日期或时间值的格式,或者日期或时间值使用不同的格式,请将 'auto' 参数与 TIMEFORMAT 参数结合使用。在使用 DATEFORMAT 和 TIMEFORMAT 字符串时,'auto' 参数将识别一些不受支持的格式。
| 日期部分或时间部分 | 意义 |
|---|---|
| YY | 不带世纪的年份 |
| YYYY | 带世纪的年份 |
| MM | 用数字表示的月份 |
| MON | 用名称表示的月份(缩写名称或完整名称) |
| DD | 用数字表示的日 |
| HH 或 HH24 | 小时(24 小时制) 在用于 SQL 函数的 DATETIME 格式字符串中,HH 与 HH12 相同。但是,在用于 COPY 的 DATEFORMAT 和 TIMEFORMAT 字符串中,HH 与 HH24 相同。 |
| HH12 | 小时(12 小时制) |
| MI | 分钟 |
| SS | 秒 |
| AM 或 PM | 经线标识符(适用于 12 小时制) |
默认格式日期是 YYYY-MM-DD。不带时区 (TIMESTAMP) 的默认时间戳格式是 YYYY-MM-DD HH:MI:SS。带时区 (TIMESTAMPTZ) 的默认时间戳格式是 YYYY-MM-DD HH:MI:SSOF,其中 OF 是与 UTC 的偏移两个(例如,-8:00)。您不能在 timeformat_string 中包含时区标识符(TZ、tz 或 OF)。秒 (SS) 字段还支持小数秒到微秒级别的细节。要加载格式与默认格式不同的 TIMESTAMPTZ 数据,请指定“自动”。有关更多信息,请参阅在 DATEFORMAT 和 TIMEFORMAT 中使用自动识别。
例如,下列 DATEFORMAT 和 TIMEFORMAT 字符串有效。
| COPY 语法 | 有效输入字符串的示例 |
|---|---|
| DATEFORMAT AS 'MM/DD/YYYY' | 03/31/2003 |
| DATEFORMAT AS 'MON DD, YYYY' | March 31, 2003 |
| TIMEFORMAT AS 'MM.DD.YYYY HH:MI:SS' | 03.31.2003 18:45:05 03.31.2003 18:45:05.123456 |