sqlserver如何比较两个日期(datetime)的年月大小,比较到年月,不比较日

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver如何比较两个日期(datetime)的年月大小,比较到年月,不比较日相关的知识,希望对你有一定的参考价值。

select * from xxxx where datediff(m,dt1,dt2)
datediff:日期比较函数,SQL server自带的,会将比较的两个日期比较部分的差值返回,m表示比较月
参考技术A 更正一下2L:
select * from 表
where year(日期字段1)<year(日期字段2)
or
(year(日期字段1)=year(日期字段2) AND month(日期字段1)<month(日期字段2) )
参考技术B select * from 表
where year(日期字段1)<year(日期字段2) AND month(日期字段1)<month(日期字段2)
只要保持比较运算符一致就行
参考技术C 不是吧。。。datetime,直接比就是了。。 参考技术D select * from tab where convert(varchar(7),dtcol1,120) < convert(varchar(7),dtcol2,120)

DateTime.Compare(t1,t2)比较两个日期大小

DateTime.Compare(t1,t2)比较两个日期大小,排前面的小,排在后面的大,比如:2011-2-1就小于2012-3-2
返回值小于零:  t1 小于 t2。 
返回值等于零 : t1 等于 t2。 
返回值大于零:  t1 大于 t2。 

如:

[c-sharp] view plain copy
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5.   
  6. namespace ConsoleApplication1  
  7. {  
  8.     class Program  
  9.     {  
  10.         static void Main(string[] args)  
  11.         {  
  12.   
  13.             DateTime t1 = DateTime.Parse("2011-2-2");  
  14.             DateTime t2 = DateTime.Parse("2011-3-1");  
  15.   
  16.             if (DateTime.Compare(t1, t2) > 0)   
  17.                 Console.WriteLine("t1 > t2");  
  18.             if (DateTime.Compare(t1, t2) == 0)   
  19.                 Console.WriteLine("t1 == t2");  
  20.             if (DateTime.Compare(t1, t2) < 0)   
  21.                 Console.WriteLine("t1 < t2");  
  22.         }  
  23.     }  
  24. }  

 

运行结果:

t1 < t2
请按任意键继续. . .

文章出处:https://blog.csdn.net/aspnet2002web/article/details/6171415

以上是关于sqlserver如何比较两个日期(datetime)的年月大小,比较到年月,不比较日的主要内容,如果未能解决你的问题,请参考以下文章

SQL 时间比较

求助:sqlserver数据库中的日期格式怎么转换

sqlserver数据怎么查询两个时间之间的数据

如何仅比较 EF 中 DateTime 中的日期组件?

在SQLserver中如何获得两个日期相减的天数

如何在遍历列表时比较 DateTime 对象?