此SQL中发生了什么:`SELECT CONVERT(CHAR(10),GETDATE(),103)`

时间:2018-10-29 19:27:38

标签: sql-server

我在一些编写文档的代码中发现了这一点:

SELECT CONVERT(CHAR(10), GETDATE(), 103)

我...不明白。第一个arg应该是data_type,而不是字符串。 “ LineFeed”如何是有效的data_type?

它运行并返回今天的日期(在SQL Server中),所以我肯定缺少明显的东西。

2 个答案:

答案 0 :(得分:6)

CHAR是有效的数据类型,除了是function

解析器足够智能,可以知道在这种情况下CHAR被用作数据类型。

答案 1 :(得分:1)

CONVERT()函数带有3个参数:

  1. 数据类型
  2. 表达式
  3. 样式

您的行SELECT CONVERT(CHAR(10), GETDATE(), 103)符合以下签名:

  1. 数据类型为CHAR(10)
  2. 表达式为GETDATE()
  3. 样式为103

GETDATE()表达式返回一个DATETIME对象,该对象按照CHAR(10)(根据站点为103)指定的样式转换为dd/mm/yyyy我链接到上面)。