��һ�죨DATEFIRST���趨����������ϵͳʹ����һ����Ϊһ�ܵĵ�һ�졣�������µ����Ӷ�������������Ϊһ�ܵĵ�һ����������Ҳ���ǵ�һ������Ϊ7���������ĵ�һ�����ò�һ������������Ҫ������Щ���ӣ�ʹ���Ͳ�ͬ�ĵ�һ�����������ϡ�������ͨ��@@DATEFIRST������������һ�����á�
�����ȸ�ϰһ��DATEDIFF��DATEADD������
DATEDIFF����������������֮����Сʱ���졢�ܡ��¡�����ʱ������������
DATEADD��������һ������ͨ����ʱ�������Ӽ�������һ���µ����ڡ�
Ҫ�˽�������DATEDIFF��DATEADD�����Լ�ʱ�����������Ķ�������������
����һ���µ�һ����SQL �ű���SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
�ű����ͣ����ǰ����������ֿ��������������ι����ġ������ĵĺ�����getdate()�������Ƿ��ص�ǰ�����ں�ʱ���ĺ�������һ��ִ�еĺ���DATEDIFF(mm,0,getdate())�Ǽ��㵱ǰ���ں�"1900-01-01 00:00:00.000"��������֮������������ס��ʱ�ں�ʱ�������ͺ���һ���Ǵ�"1900-01-01 00:00:00.000"��ʼ�����ġ�������Ϊʲô��������DATEDIFF������ָ����һ��ʱ������ʽΪ"0"����һ��������DATEADD�����ӵ�ǰ���ڵ�"1900-01-01"��������ͨ������Ԥ����������"1900-01-01"�͵�ǰ���ڵ����������ǿ��Ի��������µĵ�һ�졣���⣬�������������ڵ�ʱ�䲿�ֽ�����"00:00:00.000"��
���������ļ������ȼ��㵱ǰ���ڵ�"1900-01-01"��ʱ����������Ȼ�������ӵ�"1900-01-01"�����������������ڣ��������ɿ������������ܶͬ�����ڡ���һ������Ҳ�����������ɴӵ�ǰ������������ͬ�����ڡ�
���ܵ�����һ��SQL �ű��� SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
������������(wk)��ʱ��������������һ���DZ��ܵ�����һ��
һ���ĵ�һ����SQL �ű���SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
����(yy)��ʱ����������ʾ��һ���ĵ�һ�졣
���ȵĵ�һ����SQL �ű���SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
�����İ�ҹ��SQL �ű���SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
������Ҫͨ��getdate()����Ϊ�˷���ʱ��ֵ�ص�ʱ�䲿�֣��ͻῼ�ǵ���ǰ�����Dz����ڰ�ҹ��������������������ʹ��DATEDIFF��DATEADD���������ð�ҹ��ʱ���㡣
����DATEDIFF��DATEADD��������
���������ף�ͨ��ʹ�ü�DATEDIFF��DATEADD�������㣬�����Է��ֺܶͬ�Ŀ��������������ڡ�
ĿǰΪֹ����������ֻ�ǽ������㵱ǰ��ʱ����"1900-01-01"֮����ʱ������������Ȼ�������ӵ�"1900-01-01"��ʱ�������������������ڡ��ٶ�����ʱ������������������ʹ�ò�ͬ��ʱ������������DATEADD����������ȥʱ���������������ӣ���ôͨ����ЩС�ĵ��������Է��ֺͶͬ�����ڡ�
�������ĸ�����ʹ������һ��DATEADD��������������һ�����ֱ��滻DATEADD����ǰ������ʱ��������
�ϸ��µ�����һ����SQL �ű���SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
����һ�������ϸ�������һ�������ӡ���ͨ����һ���µ�����һ�����������ϼ�ȥ3���������á���һ��Ҫ��ס����Sql Server��ʱ���Ǿ�ȷ��3���롣������Ϊʲô����Ҫ��ȥ3������������Ҫ�����ں�ʱ�䡣
�������������ڵ�ʱ�䲿�ְ�����һ��Sql Server���Լ�¼��һ��������ʱ�̵�ʱ�䡣
ȥ��������һ����SQL �ű���SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
�������������ӣ�Ϊ��Ҫ�õ�ȥ��������һ�죬����Ҫ�ڽ����ĵ�һ���ϼ�ȥ3���롣
���µ�����һ����SQL �ű��� SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
���ڣ�Ϊ�˻��ñ��µ�����һ�죬����Ҫ����һ�»����ϸ��µ�����һ�������䡣����Ҫ����DATEDIFF�Ƚϵ�ǰ���ں�"1900-01-01"���ص�ʱ�������ϼ�1��ͨ����1���£��Ҽ������¸��µĵ�һ�죬Ȼ����ȥ3���룬�����ͼ������������µ�����һ�졣���Ǽ��㱾������һ����SQL�ű���
����������һ����SQL �ű��� SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
���µĵ�һ������һ��SQL �ű���select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
�������������ʹ����"���ܵ�����һ"�Ľű���������һ�����ġ��ĵIJ����ǰ�ԭ���ű���"getdate()"�����滻�ɼ��㱾�µĵ�6�죬�ڼ������ñ��µĵ�6�����滻��ǰ����ʹ�ü������Ի��������µĵ�һ������һ��
�ܽ�
��ϣ����Щ���ӿ���������DATEADD��DATEDIFF������������ʱ����һ��������ͨ��ʹ�������������ڵ�ʱ����������ѧ�������ҷ���Ϊ����ʾ��������֮�������������������м�ֵ�ġ�ע�⣬��ֻ�Ǽ�������Щ���ڵ�һ�ַ�����Ҫ�μǣ����кܶ�����Եõ���ͬ�ļ����������������������ķ������Ǻܲ�����Ҫ����û�У���ϣ����Щ���ӿ��Ը���һЩ����������Ҫ��DATEADD��DATEDIFF������������������Ҫ�õ�������ʱ��
---------------------------------------------------------------
��¼���������ڴ�������
1)ȥ��ʱ����
declare @ datetime
set @ = getdate() --'2003-7-1 10:00:00'
SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0)
2����ʾ���ڼ�
select datename(weekday,getdate())
3������ȡ��ij���µ�����
declare @m int
set @m=2 --�·�
select datediff(day,'2003-'+cast(@m as varchar)+'-15' ,'2003-'+cast(@m+1 as varchar)+'-15')
���⣬ȡ�ñ�������
select datediff(day,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate()) as varchar)+'-15' ,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate())+1 as varchar)+'-15')
����ʹ�ü��㱾�µ�����һ���Ľű���Ȼ����DAY����������һ��
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))
4���ж��Ƿ����꣺
SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then 'ƽ��' else '����' end
����
select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01'))
when 28 then 'ƽ��' else '����' end
5��һ�����ȶ�����
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time))

ϲ��
��
�ѹ�
��
��
����



������ҫ�˺Ŷ�
MARVEL Strike
2017��10������
�ȹپ�һƷ����