2013-04-26 79 views
8

当我们转换或SQL投日期,请参见下面的SQL代码SELECT CONVERT(VARCHAR(10),GETDATE(),110)这里110是什么意思?

SELECT CONVERT(VARCHAR(10), GETDATE(), 110) AS [MM-DD-YYYY] 

它工作得很好,我只是想知道110在上面的代码的含义。它实际上做了什么,有时我们使用102,112等等。那个数字的用法是什么。

+0

的可能的复制[如何日期时间转换到VARCHAR(http://stackoverflow.com/questions/74385 /如何对转换,日期时间到VARCHAR) – 2017-03-27 05:56:28

回答

9

这个数字表示日期和时间样式

你需要看看CAST and CONVERT (Transact-SQL)。在这里您可以找到所有这些日期和时间样式的含义。

具有世纪风格(如100,101等)意味着年份将以yyyy格式出现。虽然没有世纪的风格(例如1,7,10)意味着年份将以yy格式出现。您也可以参考SQL Server Date Formats。在这里你可以找到所有带有例子的日期格式。

1

将表达式从一种类型转换为另一种时,在很多情况下,存储过程或其他例程中需要将数据从日期时间类型转换为varchar类型。 Convert function用于这样的事情。可以使用CONVERT()函数以各种格式显示日期/时间数据。

语法

CONVERT(data_type(length), expression, 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)