技术开发 频道

SQL SERVER日期格式与多国语言问题

  【IT168技术文档】

  SQL SERVER日期格式与多国语言问题(一)

  数据库language不同,sql server对日期格式的选择也不同。

  数字日期格式

  Microsoft® SQL Server™ 2000 允许用指定的数字月份指定日期数据。例如,5/20/97 表示 1997 年 5 月的第 20 天,当使用数字日期格式时,在字符串中以斜杠(/)、连字符(-)或句号(.)作为分隔符来指定月、日、年。字符串必须以下面的形式出现:数字 分隔符 数字 分隔符 数字 [时间] [时间]

  下面的数字日期格式是有效的:

  [0]4/15/[19]96 -- (mdy)[0]4-15-[19]96 -- (mdy)[0]4.15.[19]96 -- (mdy)[04]/[19]96/15 -- (myd) 15/[0]4/[19]96 -- (dmy)15/[19]96/[0]4 -- (dym)[19]96/15/[0]4 -- (ydm)[19]96/[04]/15 -- (ymd)当语言被设置为 us_english 时,默认的日期顺序是 mdy。可以使用 SET DATEFORMAT 语句改变日期的顺序,根据所用的语言,它也会影响日期顺序。

  对 SET DATEFORMAT 的设置决定了如何解释日期数据。如果顺序和设置不匹配,则该值不会被解释为日期(因为它们超出了范围),或者被错误地解释。例如,根据不同的 DATEFORMAT 设置,12/10/08 能被解释为六种日期的一种。

  字母日期格式

  Microsoft® SQL Server™ 2000 允许使用以当前语言给出的月的全名(如 April)或月的缩写(如 Apr)来指定日期数据;逗号是可选的,而且忽略大小写。

  以下是使用字母日期格式的一些指导:

  把日期和时间数据括在单引号中 (')。

  下面是 SQL Server 日期数据的合法字母格式(括号内的字符是可选字符):

  · Apr[il] [15][,] 1996
  · Apr[il] 15[,] [19]96
  · Apr[il] 1996 [15]
  · [15] Apr[il][,] 1996
  · 15 Apr[il][,][19]96
  · 15 [19]96 apr[il]
  · [15] 1996 apr[il
  · 1996 APR[IL] [15]
  · 1996 [15] APR[IL]

  如果只指定年份的最后两位数字,则小于 two digit year cutoff 配置选项值最后两位数字的值与缩略形式的年份位于同一个世纪。大于或等于该选项值的值位于缩略形式年份的上一世纪。例如,如果 two digit year cutoff 为 2050(默认),则 25 被解释为 2025,50 被解释为 1950。为避免模糊,请使用四位数字的年份。

  如果没有指定日,则默认值为当月第一天。

  当按字母形式指定月时,SET DATEFORMAT 会话设置不起作用。

  使用日期和时间数据

  Microsoft® SQL Server™ 2000 使用 datetime 和 smalldatetime 数据类型存储日期和时间数据。

  没有只存储时间或日期的独立的时间和日期数据类型。当设置 datetime 或 smalldatetime 值时,如果只指定时间,则日期默认为 1900 年 1 月 1 日。如果只指定日期,则时间默认为 12:00 AM(午夜)。

  对于 datetime 数据,可以执行如下操作:

  键入新的数据或更改现有的数据。

  进行日期和时间的计算,比如日期的加或减。有关日期算法的更多信息,请参见 +(加)和 -(减)。

  搜索特定的日期和/或时间。

  可以使用系统日期函数进行一些关于 datetime 数据的算术运算。有关更多信息,请参见函数。

  下面是一些使用日期和时间数据的准则:

  若要对日期和时间进行精确搜索匹配,请使用等号(=)。Microsoft SQL Server 以 12:00:00:000 AM(默认值)的精确时间形式返回年、月、日都完全匹配的日期和时间值。

  若要搜寻日期或时间的一部分,请使用 LIKE 运算符。SQL Server 首先把数据转换为 datetime 格式然后再转换为 varchar 格式。由于标准时间显示格式不包括秒和毫秒,不能使用 LIKE 和匹配模式对其搜索,除非使用 CONVERT 函数并把 style 参数设为 9 或 109。有关部分日期和时间搜索的更多信息,请参见 LIKE。

0
相关文章