

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 用于创建特定输出时间戳的模板字符串
<a name="sql-reference-template-strings-create-output-timestamps"></a>




| 模板 | 输入字符串 | 输出TIMESTAMP | 注意 | 
| --- | --- | --- | --- | 
|  'yyyy-MM-dd hh:mm:ss'  |  '2009-09-16 03:15:24'  |  '2009-09-16 03:15:24'  | 
|  'yyyy-mm'  |  '2011-02-08 07:23:19'  |  '2011-01-01 00:02:00'  |  上面的模板仅指定了第一个是年和第二个是分，因此输入字符串中的第二个元素（“02”）用作分。月和日使用默认值（“01”），时和秒使用默认值（“00”）。  | 
|  'MMM dd, yyyy'  |  'March 7, 2010'  |  '2010-03-07 00:00:00'  | 上面模板中的 MMM 与“March”匹配；模板的“逗号空格”与输入字符串匹配。 如果模板缺少逗号，输入字符串也必须缺少逗号，否则就没有输出； 如果输入字符串缺少逗号，模板也必须缺少逗号。 | 
|  'MMM dd,'  |  'March 7, 2010'  |  '1970-03-07 00:00:00'  | 请注意，上面的模板没有使用年说明符，这会导致输出 TIMESTAMP 使用这个时代最早的一年，即 1970。 | 
|  'MMM dd,y'  |  'March 7, 2010'  |  '2010-03-07 00:00:00'  | 使用上面的模板，如果输入字符串是“March 7, 10”，则输出 TIMESTAMP 将是“0010-03-07 00:00:00”。 | 
|  'M-d'  |  '2-8'  |  '1970-02-08 00:00:00'  | 如上所示，模板中没有 yyyy 说明符，因此使用这个时代最早的一年 (1970)。 输入字符串“2–8−2011”将生成相同的结果；使用“2011–2−8”不会生成任何结果，因为 2011 不是有效的月。 | 
|  'MM-dd-yyyy'  |  '06-23-2011 10:11:12'  |  '2011-06-23 00:00:00'  | 如果模板和输入都在相同位置使用短划线作为分隔符（如上所示），则可以使用短划线。由于模板省略了时、分和秒，因此在输出 TIMESTAMP 中都使用零。 | 
|  `'dd-MM-yy hh:mm:ss'`  |  `'23-06-11 10:11:12'`  |  `'2011-06-23 10:11:12'`  | 您可以按任意顺序使用这些说明符，但前提是该顺序与您提供的输入字符串的含义匹配。下面下一个示例的模板和输入字符串与此示例具有相同的含义（和相同的输出 TIMESTAMP），但在日之前指定了月，在时之前指定了秒。 | 
|  `'MM-dd-yy ss:hh:mm'`  |  `'06-23-11 12:10:11'`  |  `'2011-06-23 10:11:12'`  | 在上面使用的模板中，月和日说明符的顺序与上面的示例相反，秒的说明符在时之前而不是分之后；但是由于输入字符串还将月放在日之前，将秒放在时之前，因此含义（和输出 TIMESTAMP）与上面的示例相同。 | 
|  `'yy-dd-MM ss:hh:mm'`  |  `'06-23-11 12:10:11'`  |  `'2006-11-23 10:11:12'`  | 上面使用的模板颠倒了（与上面的前一个示例相比）年和月说明符，而输入字符串保持不变。在本例中，输出 TIMESTAMP 使用输入字符串的第一个元素作为年，第二个元素作为日，第三个元素作为月。 | 
|  `'dd-MM-yy hh:mm'`  |  `'23-06-11 10:11:12'`  |  `'2011-06-23 10:11:00'`  | 如上所示，模板中省略了秒，输出 TIMESTAMP 使用 00 秒。任意数量的 y 说明符都会生成相同的结果；但是如果输入字符串无意中对年使用的是 1 而不是 11，例如在“23-06-1 10:11:12”中，则输出 TIMESTAMP 将变为“0001-06-23 10:11:00”。 | 
|  `'MM/dd/yy hh:mm:ss'`  |  `'12/19/11 10:11:12'`  `'12/19/11 12:11:12'`  |  `'2011-12-19 10:11:12'`  `'12/19/11 00:11:12'`  | 如果模板和输入都在相同位置使用斜杠作为分隔符（如上所示），则可以使用斜杠。使用说明符 hh，输入时间“12:11:10”和“00:11:10”与上午的时间含义相同。 | 
|  `'MM/dd/yy HH:mm:ss'`  |  `'12/19/11 12:59:59'` `'12/19/11 21:08:07'`  `'2011-12-19 00:11:12'` `'2011-12-19 12:11:12'`  |  `'2011-12-19 12:59:59'` `'2011-12-19 21:08:07'`   |  此模板的输入字符串值`'2011-12-19 00:11:12'`或`'2011-12-19 12:11:12'`会失败，因为`'2011'`不是一个月，如模板字符串 required/expected 所示。`'MM/dd/yy HH:mm:ss'` 但是，更改模板会生成有用的输出： <pre>values(cast(CHAR_TO_TIMESTAMP('y/MM/dd HH:mm:ss', '2011/12/19 00:11:12') as<br />varchar(19)));<br />'EXPR$0'<br />'2011-12-19 00:11:12'</pre> 已选定 1 行 对于上述模板 (`'y/MM/dd'`)，`'12/19/11 00:11:12'`会失败，因为 19 不是有效的月；提供“`12/11/19 00:11:12'`有效。 `'2011-12-19 12:11:12'`作为输入会失败，因为短划线与模板中的斜杠不匹配，`'2011/12/19 12:11:12'`有效。 请注意，对于中午 12 点之后的时间，也就是说，对于下午和晚上的时间，时说明符必须是 HH 而不是 hh，并且输入字符串必须以 24 小时制时间指定下午或晚上的时，时从 00 到 23。 使用说明符 HH，输入时间“12:11:10”和“00:11:10”具有不同的含义，第一个是下午的时间，第二个是上午的时间。 使用说明符 hh，从 12:00 到 11:59:59 的时间是上午的时间： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/kinesisanalytics/latest/sqlref/sql-reference-template-strings-create-output-timestamps.html) | 

