mysql date 包含t z_向数据库发送日期和时间

将日期以字符串(对于 DATE 数据类型)或字符串的一部分(对于 TIMESTAMP 或 TIMESTAMP WITH TIME ZONE 数据类型)形式发送到数据库时,可以通过各种不同的方法指定字符串,包括关于日期和时间表示的国际标准 ISO

8601 中所述的方法。

可以采用以下 ISO 8601 格式之一指定日期。

日历日期

日历日期的格式为 YYYY-MM-DD,其中 YYYY 为公历年份,MM 为一年中 01(一月)到 12(十二月)之间的月份,DD 为一个月中 01 到 31 之间的日期。例如,'2010-04-01' 表示 2010 年四月的第一天。ISO

8601 不要求使用分隔符。因此,'20100401' 也表示 2010 年四月的第一天。

ISO 日历日期

格式

示例

基本

YYYYMMDD

20100401

扩展

YYYY-MM-DD

2010-04-01

周日期

另一种 ISO 日期格式是周日期。该格式为 YYYY-Www-D,其中 YYYY 为公历年份,W 为字母 W,ww 为一年中 01(第一周)到 52 或 53(最后一周)之间的周,D 为一周中 1(星期一)到 7(星期日)之间的日。例如,'2010-W13-4' 表示 2010 年第十三周的第四天(2010 年 4 月 1 日)。ISO 8601 不要求使用分隔符。因此,'2010W134'

也表示 2010 年第十三周的第四天。为降低精度,可以对该表示形式省略一位数字('2010W13' 表示 2010 年 3 月 29 日)。

ISO 周日期

格式

示例

基本

YYYYWwwD

2010W134

扩展

YYYY-Www-D

2010-W13-4

序数日期

最后一种 ISO 日期格式为序数日期。该格式为 YYYY-DDD,其中 YYYY 为公历年份,DDD 为日历年中日历天的序数。例如,'2010-091' 表示 2010 年四月的第一天。ISO 8601 不需要使用分隔符。例如,'2010091'

也表示 2010 年 4 月 1 日。最大序数日期为闰年的 366。例如,'2008366' 表示 2008 年的最后一天(2008 年 12 月 31 日)。

ISO 序数日期

格式

示例

基本

YYYYDDD

2010091

扩展

YYYY-DDD

2010-091

支持其它日期格式。SQL Anywhere 对包含数据的字符串的解释非常灵活。只要存在任何不明确之处,date_order 和 nearest_century 数据库选项设置就会指导数据值的解释。例如,根据 date_order 设置的不同,数据库服务器可将

'02/05/2002' 解释为 5 月 2 日 (DMY)、2 月 5 日 (MDY) 或非法值 (YMD)。

nearest_century 设置决定两位数年份值解释为二十世纪还是二十一世纪中的某年。例如,在字符串 '02/05/10' 中,date_order 设置决定将 02 或 10 解释为年份,而 nearest_century 设置则决定 02

表示 1902 还是 2002,或者 10 表示 1910 还是 2010。nearest_century 选项的值会影响两位数年份的解释:对于小于 nearest_century 的值,将为其加上 2000;对于所有其它值,将为其加上 1900。此选项的缺省值为

50。因此,缺省情况下,年份 50 将解释为 1950 年,而年份 49 则解释为 2049 年。

下表显示了如何使用所示的 date_order 设置和设为 50 的 nearest_century 设置指定 2010 年四月的第一天。

date_order

格式

示例

YMD

YYYY/MM/DD

2010/04/01

YMD

YY/MM/DD

10/04/01

MDY

MM/DD/YYYY

04/01/2010

MDY

MM/DD/YY

04/01/10

DMY

DD/MM/YYYY

01/04/2010

DMY

DD/MM/YY

01/04/10

由于 ISO 8601 格式不会含糊不清且不受 date_order 和 nearest_century 用户设置的影响,因此建议使用这类格式。

也可以使用月份名称来指定日期。例如,'2010 April 01'、'April 1, 2010' 和 '1 April 2010'。当年份指定不明确时,将使用 date_order 选项确定月份部分的年和日。因此,'01 April 10'

在 date_order 为 'YMD' 时解释为 2001 年 4 月 10 日,在 date_order 为 'DMY' 时解释为 2010 年 4 月 1 日。

日期中的年份范围可介于 0001 到 9999 之间。SQL Anywhere 中的最小日期为 0001-01-01。

如果字符串只包含部分日期规范,将使用缺省值填写日期。使用以下缺省值:

year

未指定年份(例如,'April 1')时将使用当前年份。

month

未指定年份和月份(例如,'23:59:59')时将使用当前月份,或者如果指定了年份(例如,'2010')则使用 01。

day

未指定年份和月份(例如,'23:59:59')时将使用当日,或者如果指定了月份(例如,'April')则使用 01。

在以下示例中,日期值根据当前日期构造而成。

SELECT CAST('23:59:59' AS TIMESTAMP)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值