【发布时间】:2013-04-20 05:49:34
【问题描述】:
当我们在sql中转换或转换日期时,见下面的sql代码
SELECT CONVERT(VARCHAR(10), GETDATE(), 110) AS [MM-DD-YYYY]
它工作正常,我只想知道上面代码中 110 的含义。它实际上是做什么的,有时我们使用 102、112 等。这个数字有什么用。
【问题讨论】:
当我们在sql中转换或转换日期时,见下面的sql代码
SELECT CONVERT(VARCHAR(10), GETDATE(), 110) AS [MM-DD-YYYY]
它工作正常,我只想知道上面代码中 110 的含义。它实际上是做什么的,有时我们使用 102、112 等。这个数字有什么用。
【问题讨论】:
110 是日期格式的样式值。
【讨论】:
该数字表示日期和时间样式
您需要查看CAST and CONVERT (Transact-SQL)。在这里您可以找到所有这些日期和时间样式的含义。
带有世纪的样式(例如 100、101 等)表示年份将以 yyyy 格式出现。而没有世纪的样式(例如 1,7,10)意味着年份将以 yy 格式出现。
您也可以参考SQL Server Date Formats。在这里,您可以找到所有带有示例的日期格式。
【讨论】:
当您将表达式从一种类型转换为另一种类型时,在许多情况下,存储过程或其他例程中需要将数据从 datetime 类型转换为 varchar 类型。 Convert function 用于此类事情。 CONVERT() 函数可用于以各种格式显示日期/时间数据。
语法
CONVERT(data_type(length), expression, style)
Style - 用于将 datetime 或 smalldatetime 转换为字符数据的样式值。将 100 添加到样式值以获得包含世纪 (yyyy) 的四位年份。
示例 1
采用定义以下格式的样式值 108:
hh:mm:ss
现在在以下查询中使用上述样式:
select convert(varchar(20),GETDATE(),108)
示例 2
我们使用样式值 107,它定义了以下格式:
周一 dd, yy
现在在以下查询中使用该样式:
select convert(varchar(20),GETDATE(),107)
类似
style-106 for Day,Month,Year (26 Sep 2013)
style-6 for Day, Month, Year (26 Sep 13)
style-113 for Day,Month,Year, Timestamp (26 Sep 2013 14:11:53:300)
【讨论】:
10 = 月-日-年 110 = mm-dd-yyyy
【讨论】: