(转)数据库中关于时间日期函数--A. 测试 datetime 精度问题
(转)数据库中关于时间日期函数
DECLARE @t TABLE(date char(21))
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.000'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.001'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.009'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.002'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.003'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.004'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.005'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.006'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.007'
(转)数据库中关于时间日期函数
INSERT @t SELECT '1900-1-1 00:00:00.008'
(转)数据库中关于时间日期函数
SELECT date,转换后的日期=CAST(date as datetimeFROM @t
(转)数据库中关于时间日期函数

2、CONVERT在日期转换中的使用示例
(转)数据库中关于时间日期函数--字符转换为日期时,Style的使用
(转)数据库中关于时间日期函数

(转)数据库中关于时间日期函数
--1. Style=101时,表示日期字符串为:mm/dd/yyyy格式
(转)数据库中关于时间日期函数
SELECT CONVERT(datetime,'11/1/2003',101)
(转)数据库中关于时间日期函数
--结果:2003-11-01 00:00:00.000
(转)数据库中关于时间日期函数

(转)数据库中关于时间日期函数
--2. Style=101时,表示日期字符串为:dd/mm/yyyy格式
(转)数据库中关于时间日期函数
SELECT CONVERT(datetime,'11/1/2003',103)
(转)数据库中关于时间日期函数
--结果:2003-01-11 00:00:00.000
(转)数据库中关于时间日期函数

(转)数据库中关于时间日期函数

3、SET DATEFORMAT对日期处理的影响
(转)数据库中关于时间日期函数--1.

4、SET LANGUAGE对日期处理的影响示例
(转)数据库中关于时间日期函数--以下示例演示了在不同的语言环境(SET LANGUAGE)下,DATENAME与CONVERT函数的不同结果。
(转)数据库中关于时间日期函数
USE master
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--设置会话的语言环境为: English
(转)数据库中关于时间日期函数
SET LANGUAGE N'English'
(转)数据库中关于时间日期函数
SELECT 
(转)数据库中关于时间日期函数    
DATENAME(Month,GETDATE()) AS [Month],
(转)数据库中关于时间日期函数    
DATENAME(Weekday,GETDATE()) AS [Weekday],
(转)数据库中关于时间日期函数    
CONVERT(varchar,GETDATE(),109AS [CONVERT]

5、日期格式化处理
(转)数据库中关于时间日期函数DECLARE @dt datetime
(转)数据库中关于时间日期函数
SET @dt=GETDATE()
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--1.短日期格式:yyyy-m-d
(转)数据库中关于时间日期函数
SELECT REPLACE(CONVERT(varchar(10),@dt,120),N'-0','-')
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--2.长日期格式:yyyy年mm月dd日 
(转)数据库中关于时间日期函数--
A. 方法1 
(转)数据库中关于时间日期函数
SELECT STUFF(STUFF(CONVERT(char(8),@dt,112),5,0,N''),8,0,N'')+N''
(转)数据库中关于时间日期函数
--B. 方法2 
(转)数据库中关于时间日期函数
SELECT DATENAME(Year,@dt)+N''+DATENAME(Month,@dt)+N''+DATENAME(Day,@dt)+N''
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--3.长日期格式:yyyy年m月d日
(转)数据库中关于时间日期函数
SELECT DATENAME(Year,@dt)+N''+CAST(DATEPART(Month,@dtAS varchar)+N''+DATENAME(Day,@dt)+N''
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--4.完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm
(转)数据库中关于时间日期函数
SELECT CONVERT(char(11),@dt,120)+CONVERT(char(12),@dt,114)

6、日期推算处理
(转)数据库中关于时间日期函数DECLARE @dt datetime
(转)数据库中关于时间日期函数
SET @dt=GETDATE()
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
DECLARE @number int
(转)数据库中关于时间日期函数
SET @number=3
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--1.指定日期该年的第一天或最后一天
(转)数据库中关于时间日期函数--
A. 年的第一天
(转)数据库中关于时间日期函数
SELECT CONVERT(char(5),@dt,120)+'1-1'
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--B. 年的最后一天
(转)数据库中关于时间日期函数
SELECT CONVERT(char(5),@dt,120)+'12-31'
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--2.指定日期所在季度的第一天或最后一天
(转)数据库中关于时间日期函数--
A. 季度的第一天
(转)数据库中关于时间日期函数
SELECT CONVERT(datetime,
(转)数据库中关于时间日期函数    
CONVERT(char(8),
(转)数据库中关于时间日期函数        
DATEADD(Month,
(转)数据库中关于时间日期函数            
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
(转)数据库中关于时间日期函数            
@dt),
(转)数据库中关于时间日期函数        
120)+'1')
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--B. 季度的最后一天(CASE判断法)
(转)数据库中关于时间日期函数
SELECT CONVERT(datetime,
(转)数据库中关于时间日期函数    
CONVERT(char(8),
(转)数据库中关于时间日期函数        
DATEADD(Month,
(转)数据库中关于时间日期函数            
DATEPART(Quarter,@dt)*3-Month(@dt),
(转)数据库中关于时间日期函数            
@dt),
(转)数据库中关于时间日期函数        
120)
(转)数据库中关于时间日期函数    
+CASE WHEN DATEPART(Quarter,@dtin(1,4)
(转)数据库中关于时间日期函数        
THEN '31'ELSE '30' END)
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--C. 季度的最后一天(直接推算法)
(转)数据库中关于时间日期函数
SELECT DATEADD(Day,-1,
(转)数据库中关于时间日期函数    
CONVERT(char(8),
(转)数据库中关于时间日期函数        
DATEADD(Month,
(转)数据库中关于时间日期函数            
1+DATEPART(Quarter,@dt)*3-Month(@dt),
(转)数据库中关于时间日期函数            
@dt),
(转)数据库中关于时间日期函数        
120)+'1')
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--3.指定日期所在月份的第一天或最后一天
(转)数据库中关于时间日期函数--
A. 月的第一天
(转)数据库中关于时间日期函数
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--B. 月的最后一天
(转)数据库中关于时间日期函数
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--C. 月的最后一天(容易使用的错误方法)
(转)数据库中关于时间日期函数
SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--4.指定日期所在周的任意一天
(转)数据库中关于时间日期函数
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--5.指定日期所在周的任意星期几
(转)数据库中关于时间日期函数--
A.  星期天做为一周的第1天
(转)数据库中关于时间日期函数
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--B.  星期一做为一周的第1天
(转)数据库中关于时间日期函数
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
(转)数据库中关于时间日期函数

7、特殊日期加减函数
(转)数据库中关于时间日期函数if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_DateADD]'and xtype in (N'FN', N'IF', N'TF'))
(转)数据库中关于时间日期函数    
drop function [dbo].[f_DateADD]
(转)数据库中关于时间日期函数
GO
(转)数据库中关于时间日期函数

8、查询指定日期段内过生日的人员
(转)数据库中关于时间日期函数--测试数据
(转)数据库中关于时间日期函数
DECLARE @t TABLE(ID int,Name varchar(10),Birthday datetime)
(转)数据库中关于时间日期函数
INSERT @t SELECT 1,'aa','1999-01-01'
(转)数据库中关于时间日期函数
UNION ALL SELECT 2,'bb','1996-02-29'
(转)数据库中关于时间日期函数
UNION ALL SELECT 3,'bb','1934-03-01'
(转)数据库中关于时间日期函数
UNION ALL SELECT 4,'bb','1966-04-01'
(转)数据库中关于时间日期函数
UNION ALL SELECT 5,'bb','1997-05-01'
(转)数据库中关于时间日期函数
UNION ALL SELECT 6,'bb','1922-11-21'
(转)数据库中关于时间日期函数
UNION ALL SELECT 7,'bb','1989-12-11'
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
DECLARE @dt1 datetime,@dt2 datetime
(转)数据库中关于时间日期函数
(转)数据库中关于时间日期函数
--查询 2003-12-05 至 2004-02-28 生日的记录
(转)数据库中关于时间日期函数
SELECT @dt1='2003-12-05',@dt2='2004-02-28'
(转)数据库中关于时间日期函数
SELECT * FROM

相关文章:

  • 2022-12-23
  • 2022-01-14
  • 2022-01-22
  • 2021-06-08
  • 2021-12-27
  • 2022-01-18
  • 2021-12-07
  • 2021-06-20
猜你喜欢
  • 2022-02-09
  • 2021-09-22
  • 2022-02-09
  • 2021-08-12
相关资源
相似解决方案