日期和时间函数

SQL Server .NET Framework 数据提供程序 (SqlClient) 提供了日期和时间函数,这些函数针对 System.DateTime 输入值执行运算并返回 string、数值或 System.DateTime 值结果。 这些函数位于 SqlServer 命名空间中,该命名空间在您使用 SqlClient 时可用。 提供程序的命名空间属性使实体框架可以确定此提供程序对特定构造(如类型和函数)使用哪个前缀。 下表显示了 SqlClient 日期和时间函数。

函数 说明
DATEADD(datepart, number, date) 返回一个新 DateTime 值,它是在指定日期的基础上加上一个时间间隔之后得到的结果。

参数

datepart:一个 String,表示用于返回新值的日期部分。

number:用于增加 Int32Int64DecimalDoubledatepart 值。

date: 一个表达式,返回精度为 0 到 7 的 DateTimeDateTimeOffsetTime,或日期格式的字符串。

返回值

精度为 0 到 7 的新 DateTimeDateTimeOffsetTime 值。

示例

SqlServer.DATEADD('day', 22, cast('6/9/2006' as DateTime))
DATEDIFF(datepart,startdate,enddate) 返回两个指定日期之间所跨的日期和时间边界的数目。

参数

datepart:一个 String,表示用于计算差异的日期部分。

startdate:计算的开始日期为一个表达式,该表达式返回精度为 0 到 7 的 DateTimeDateTimeOffsetTime 值或日期格式的字符串。

enddate: 计算的结束日期为一个表达式,该表达式返回精度为 0 到 7 的 DateTimeDateTimeOffsetTime 值,或日期格式的字符串。

返回值

Int32

示例

SqlServer.DATEDIFF('day', cast('6/9/2006' as DateTime),

cast('6/20/2006' as DateTime))
DATENAME(datepart, date) 返回表示指定日期的指定日期部分的字符串。

参数

datepart:一个 String,表示用于返回新值的日期部分。

date:一个表达式,返回精度为 0 到 7 的 DateTime,DateTimeOffsetTime 值或日期格式的字符串。

返回值

表示指定日期的指定日期部分的字符串。

示例

SqlServer.DATENAME('year', cast('6/9/2006' as DateTime))
DATEPART(datepart, date) 返回表示指定日期的指定日期部分的整数。

参数

datepart:一个 String,表示用于返回新值的日期部分。

date:一个表达式,返回精度为 0 到 7 的 DateTime,DateTimeOffset,Time 值或日期格式的字符串。

返回值

指定日期的指定日期部分(以 Int32 表示)。

示例

SqlServer.DATEPART('year', cast('6/9/2006' as DateTime))
DAY(date) 以整数形式返回指定日期的“日”。

参数

date:类型为 DateTimeDateTimeOffset、精度为 0 到 7 的表达式。

返回值

指定日期的“日”(以 Int32 表示)。

示例

SqlServer.DAY(cast('6/9/2006' as DateTime))
GETDATE() 为 datetime 值生成以 SQL Server 内部格式表示的当前日期和时间。

返回值

DateTime 类型的当前系统日期和时间(精度为 3)。

示例

SqlServer.GETDATE()
GETUTCDATE() 以 UTC(协调世界时或格林威治标准时间)格式生成 datetime 值。

返回值

UTC 格式的 DateTime 值(精度为 3)。

示例

SqlServer.GETUTCDATE()
MONTH(date) 以整数形式返回指定日期的月份。

参数

date:类型为 DateTimeDateTimeOffset、精度为 0 到 7 的表达式。

返回值

指定日期的月份(以 Int32 表示)。

示例

SqlServer.MONTH(cast('6/9/2006' as DateTime))
YEAR(date) 以整数形式返回指定日期的年度。

参数

date:类型为 DateTimeDateTimeOffset、精度为 0 到 7 的表达式。

返回值

指定日期的年度(以 Int32 表示)。

示例

SqlServer.YEAR(cast('6/9/2006' as DateTime))
SYSDATETIME() 返回精度为 7 的 DateTime 值。

返回值

精度为 7 的 DateTime 值。

示例

SqlServer.SYSDATETIME()
SYSUTCDATE() 以 UTC(协调世界时或格林威治标准时间)格式生成 datetime 值。

返回值

UTC 格式的 DateTime 值(精度为 7)。

示例

SqlServer.SYSUTCDATE()
SYSDATETIMEOFFSET() 返回精度为 7 的 DateTimeOffset 值。

返回值

UTC 格式的 DateTimeOffset 值(精度为 7)。

示例

SqlServer.SYSDATETIMEOFFSET()

有关 SqlClient 支持的日期和时间函数的详细信息,请参阅日期和时间数据类型和函数 (Transact-SQL)

请参阅