SET DATEFORMAT
设置用于输入 datetime 或 smalldatetime 数据的日期部分(月/日/年)的顺序。 语法
SET DATEFORMAT { format | @format_var } 参数
format | @format_var是日期部分的顺序。可以是 Unicode 或转换为 Unicode 的 DBCS。有效参数包括 mdy、dmy、ymd、ydm、myd 和 dym。美国英语默认值是 mdy。注释
该设置仅用在将字符串转换为日期值时的解释中。它对日期值的显示没有影响。SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。权限
SET DATEFORMAT 权限默认授予所有用户。示例
下例使用不同的日期格式处理不同格式的日期字符串。SET DATEFORMAT mdy
GO
DECLARE @datevar datetime
SET @datevar = '12/31/98'
SELECT @datevar
GOSET DATEFORMAT ydm
GO
DECLARE @datevar datetime
SET @datevar = '98/31/12'
SELECT @datevar
GOSET DATEFORMAT ymd
GO
DECLARE @datevar datetime
SET @datevar = '98/12/31'
SELECT @datevar
GO
设置用于输入 datetime 或 smalldatetime 数据的日期部分(月/日/年)的顺序。 语法
SET DATEFORMAT { format | @format_var } 参数
format | @format_var是日期部分的顺序。可以是 Unicode 或转换为 Unicode 的 DBCS。有效参数包括 mdy、dmy、ymd、ydm、myd 和 dym。美国英语默认值是 mdy。注释
该设置仅用在将字符串转换为日期值时的解释中。它对日期值的显示没有影响。SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。权限
SET DATEFORMAT 权限默认授予所有用户。示例
下例使用不同的日期格式处理不同格式的日期字符串。SET DATEFORMAT mdy
GO
DECLARE @datevar datetime
SET @datevar = '12/31/98'
SELECT @datevar
GOSET DATEFORMAT ydm
GO
DECLARE @datevar datetime
SET @datevar = '98/31/12'
SELECT @datevar
GOSET DATEFORMAT ymd
GO
DECLARE @datevar datetime
SET @datevar = '98/12/31'
SELECT @datevar
GO
返回跨两个指定日期的日期和时间边界数
语法
DATEDIFF ( datepart , startdate , enddate )
datepart是规定了应在日期的哪一部分计算差额的参数。可是是下列所示的缩写:日期部分 缩写
year yy, yyyy
quarter qq, q
Month mm, m
dayofyeardy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
如:datediff(dd,'2001/10/21', '2001/10/31')//求21日到31日之间的日期,返回值为int类型。用format(date,yyyy/mm/dd hh/mm/ss)或者,把操作系统的日期格式设为年/月/日 时/分/秒就可以了。
GO
print datediff(d,2002/02/01,2002/03/01)
go
为什么显示为-334?