日期时间常量

日期时间常量是特定格式的字符串常量。

有关字符串常量的更多信息,请参阅常量

有关有效字符串格式的信息,请参阅日期时间值的字符串表示

通常,字符串常量用于在赋值和比较中表示常量日期时间值。 然而,ANSI/ISO SQL标准中的日期时间常量形式可以用来特别表示日期时间常量,而不是字符串常量。 ANSI/ISO SQL标准日期时间常量的格式如下:

日期字符串常量
字符串常量必须包含符合日期字符串表示形式有效格式之一的值,并遵守以下规则:
  • 不允许前导空白。
  • 日期的月份和日期部分可以省略前导零。 任何被省略的数字均默认为0。
  • 日期的年份部分必须包含前导零。
  • 可以包括尾随空格。

该值的类型为日期。

TIME 字符串常量
字符串常量必须包含符合时间字符串表示有效格式之一的值,并遵守以下规则:
  • 不允许前导空白。
  • 时间小时部分可以省略前导零。
  • 时间的第二个元素可以省略。
  • 可以包括尾随空格。
  • 如果未使用美国格式,且分和秒均为零,则小时可以为24。
  • 如果格式为美国格式,则适用以下附加规则:
    • 时间的分钟部分可以省略。 例如,1 PM 相当于 1:00 PM。
    • 字母A、M和P可以小写。
    • 在“上午”或“下午”之前必须有一个空格。
    • 小时数不能大于12,也不能为0,除非指定时间为00:00 AM。

任何被省略的数字均默认为0。

美国格式和ISO格式(24小时制)之间的对应关系如下:

  • 凌晨12:01至凌晨12:59对应 00.01.00 , 00.59.00
  • 上午01:00至上午11:59,请发送邮件至 01.00.00 , 11.59.00
  • 中午12点至晚上11点59分,请发送邮件至 12.00.00 , 23.59.00
  • 凌晨12点(午夜)对应于 24.00.00
  • 凌晨0点(午夜)对应于 00.00.00

该值的数据类型为TIME。

TIMESTAMP 字符串常量
字符串常量必须包含符合下表所列格式之一的值,并遵守以下规则:
  • 不允许前导空白。
  • 可以包括尾随空格。
  • 时间戳的月份、日期、小时和时区小时元素可以省略前导零。 任何被省略的数字均默认为0。
  • 时间戳的分钟、秒和时区分钟元素必须包含前导零
  • 如果分、秒和任何小数秒都为0,那么小时数可以是24。
  • 如果秒数不包含小数部分,则可以省略秒数后面的分隔符。
  • 小数秒的位数可以在0到12之间变化。 如果省略了小数秒,则默认规格为0。 小数秒的位数决定了时间戳值的精确度。
  • 在时间和时区元素之间可以包含一个可选的单空格。
  • 可选时区可以包括在以下格式之一中:
    • ±th:tm,取值范围为-24:00至+24:00。 -0 :00与+0:00具有相同含义。
    • ±th,取值范围为-24至+24(时区分钟元素默认为00)
    • 使用大写Z表示UTC

值的类型取决于字符串常量(其中 p 是常量中小数秒的位数)的内容:

  • 如果字符串常量内容符合表1中的规则, 则TIMESTAMP(p) WITHOUT TIME ZONE
  • 如果字符串常量内容符合表2中的规则,则使用带时区的 TIMESTAMP(p )。
表 1. 用于指定不带时区的TIMESTAMP数据类型的值的格式
描述 时间戳(0) 无 1、3 时间戳 ( p ) 不含 2、3
日期和时间部分之间以及时间部分冒号之间留空。
  • yyyy-mm-dd hh:mm:ss
  • yyyy-mm-dd hh:mm:ss。
yyyy-mm-dd
hh:mm:ss.nnnnnnnnnnnn
日期和时间部分之间以及时间部分中的句号均为空格。
  • yyyy-mm-dd hh.mm.ss
  • yyyy-mm-dd hh.mm.ss.
yyyy-mm-dd
hh.mm.ss.nnnnnnnnnnnn
更改开始日期和时间部分之间为减号,时间部分为冒号。更改结束 更改开始
  • yyyy-mm-dd-hh:mm:ss
  • yyyy-mm-dd-hh:mm:ss。
更改结束
更改开始
yyyy-mm-dd-
hh:mm:ss.nnnnnnnnnnnn
更改结束
日期和时间部分之间以及时间部分中的句号之间使用减号。
  • yyyy-mm-dd-hh.mm.ss
  • yyyy-mm-dd-hh.mm.ss.
yyyy-mm-dd-
hh.mm.ss.nnnnnnnnnnnn
注:
  1. 无小数秒;显示时可选择是否在秒后添加尾随句点
  2. p 是小数秒的位数。 nnnnnnnnnnnn 可以是 1 - 12 个 n 的实例
  3. 作为附加格式,字符T可以作为值中日期和时间部分的分隔符。
表 2. 用于指定带有时区信息的TIMESTAMP数据类型的值的格式
描述 时间戳(0) 带 1、3 带有2、3时间戳 ( p )
日期和时间部分之间以及时间部分中的冒号之间留空,时间与时区之间不留空格。
  • 年-月-日 时:分:秒±时:分:秒
  • 年-月-日 时:分:秒±时区
  • 年-月-日 时:分:秒.±时:分:秒
  • 年-月-日 时:分:秒 ±秒
  • yyyy-mm-dd
    hh:mm:ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd
    hh:mm:ss.nnnnnnnnnnnn
    ±th
更改开始日期和时间部分之间为减号,时间部分为冒号。更改结束 更改开始
  • yyyy-mm-dd-hh:mm:ss±th:tm
  • yyyy-mm-dd-hh:mm:ss±th
  • yyyy-mm-dd-hh:mm:ss.±th:tm
  • yyyy-mm-dd-hh:mm:ss.±th
更改结束
更改开始
  • yyyy-mm-dd-
    hh:mm:ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd-
    hh:mm:ss.nnnnnnnnnnnn
    ±th
更改结束
日期和时间部分之间以及时间部分中的句号之间使用减号。
  • yyyy-mm-dd-hh.mm.ss ±th:tm
  • yyyy-mm-dd-hh.mm.ss ±th
  • yyyy-mm-dd-hh.mm.ss.±th:tm
  • yyyy-mm-dd-hh.mm.ss.±th
  • yyyy-mm-dd-
    hh.mm.ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd-
    hh.mm.ss.nnnnnnnnnnnn
    ±th
日期和时间部分之间留空,时间部分使用冒号,小数秒和时区符号之间留空。
  • 年-月-日 时:分:秒 ±时:分:秒
  • 年-月-日 时:分:秒 ±小时
  • 年-月-日 时:分:秒 ±时:分
  • 年-月-日 时:分:秒。第±个
  • yyyy-mm-dd
    hh:mm:ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd
    hh:mm:ss.nnnnnnnnnnnn
    ±th
日期和时间部分之间以及时间部分中的句号均为空格。
  • yyyy-mm-dd hh.mm.ss ±th:tm
  • 年-月-日 hh.mm.ss ±th
  • yyyy-mm-dd hh.mm.ss.±th:tm
  • yyyy-mm-dd hh.mm.ss.±th
  • yyyy-mm-dd
    hh.mm.ss.nnnnnnnnnnnn
    ±th:tm
  • yyyy-mm-dd
    hh.mm.ss.nnnnnnnnnnnn
    ±th
注:
  1. 无小数秒;显示时可选择是否在秒后添加尾随句点
  2. p 是小数秒的位数。 nnnnnnnnnnnn 可以是 1 - 12 个 n 的实例
  3. 作为附加格式,字符T可以作为值中日期和时间部分的分隔符。