sql时间对比
1. sql中,怎么对时间进行比较
这个估计是日历时间,一般就是从January 1, 1970, UTC午夜开始到现在所经过的秒数
你可以用DATEADD函数在秒上加上这个数来把它转化为它对应的datetime类型所表示的时间
比如:
select DATEADD(ss, 1257322946, '1970-1-1 00:00:00')
返回
-----------------------
2009-11-04 08:22:26.000
(1 row(s) affected)
2. sql语句中日期时间类型怎么比较
正常比较日期前后就好了,假设表名叫Table,有个字段叫CreateDate是日期类型的,如下:
select *
from Table
where CreatedDate>=CAST(DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)AS datetime)
3. SQL语句中怎样比较两个日期的大小
惯例,在等号左边尽量不要有对字段的运算,所以一般用法有:
1、判断其是否在某个日期区间:
Where CheckDate Between '2013-01-01' And '2013-01-31'
这个方法也可用于加几天是多少,或减几天是多少:
把起迄日期参数化,原CheckDate要加的,那就变成@BeginDate加,减也同理~
2、判断其是否大于某天:
Where CheckDate >'2013-01-01' 或大于等于:Where CheckDate >='2013-01-01'
小于某天
Where CheckDate <'2013-01-01' 或小于等于:Where CheckDate <='2013-01-01'
3、判断其是否等于某天:
如果Check字段不带时间,只是年月日,那直接等于就可以了;
Where CheckDate ='2013-01-01'
如果CheckDate字段是携带时间的就会有差别;这一点,在上述所有方法中都需要注意
eg:CheckDate 实际存储值可能是: 20130101 08:50:54:000 或 20130101 22:50:54:000
这时直接用上面的等号是抓不到的,因此或改写成:
Where CheckDate >= '2013-01-01' And CheckDate < '2013-01-02'
当然也可以把'2013-01-01',定义为参数@Date DateTime
Where CheckDate >= @Date And CheckDate < @Date+1
不建议在等号左边使用函数或计算对表字段进行计算。
以上是两个日期的判断,另外有些日期处理函数可以了解一下:
DATEDIFF ( datepart , startdate , enddate )
返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。
eg:
Select DateDiff(DAY,'20130101','20130105')
1号到5号相差4天,输出结果为4
常用的datepart 有:
datepart 缩写
year yy, yyyy 年
month mm, m 月
day dd, d 日
week wk, ww 周
hour hh 时
minute mi, n 分
second ss, s 秒
DATEADD(datepart, number, date)
将表示日期或时间间隔的数值与日期中指定的日期部分相加后,返回一个新的 DT_DBTIMESTAMP 值。number 参数的值必须为整数,而 date 参数的取值必须为有效日期。
eg:
Select DATEADD(DAY,1,'20130101')
1号加1天就是2号;输出结果为 ‘2013-01-02’
Number可以是负数就变成减几天
DATEADD(datepart, number, date)
将表示日期或时间间隔的数值与日期中指定的日期部分相加后,返回一个新的 DT_DBTIMESTAMP 值。number 参数的值必须为整数,而 date 参数的取值必须为有效日期。
eg:
Select DATEPART(DAY,'20130101')
返回datepart描述的部分,输出结果为 1
4. 如何在SQL中比较两个时间相等
首先这俩字段是时间类的字段,或者至少你得保证按时间格式存储的文本
datediff(day,datetime1,datetime2) =0
精确到day是不是一样的
datediff(hh,datetime1,datetime2) =0
精确到小时是不是一样的
。。。
5. SQL 时间比较
有这么一个古老的传说:
相传,在远古时期,猪头设计者们定义日期类型的时候,一共制定了两套:Date 和 Datetime 类型,
Date是日期的,如:2010-3-15
Datetime日期及时间的,如:2010-3-15 12:01:56:469
假设你要比较的两个时间都是Datetime类型数据,它们不相等的可能性也许是99.99%,因为不仅日子要一样,而且小时、分钟、秒、微秒都要相等,那才算是一致。
假设交易日期这个数据是今天上午产生的,开始日期是今天下午生成的,那么,肯定不相等了。
所以你要让同一天(不管几点钟)的相关联,那就用个函数吧,办法太多了:
①:将Datetime转换为Data再比较,where条件:
convert(date,a.交易记账日期) >= convert(date,b.开始日期)
例如:convert(date, 2010-3-15 19:25:30) 就会返回date型的 2010-3-15 00:00:00,小时分钟什么的全是0了,所以同一天的就相等了
②:将它们按你要求的格式转换为字符串后再比较,where条件:
convert(varchar,a.交易记账日期,102) >= convert(varchar,b.开始日期,102)
例如:convert(varchar, 2010-3-15 19:25:30, 102) 就会返回字符型的2010.3.15,小时分钟什么的全甩掉了
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
请根据这个传说对号入座,希望有所提醒,如果不是这个原因,咱们再研究~
6. 如何在SqlServer数据库中用SQL语句中比较时间
datediff()这个挺好用的,select
datediff(time1,time2,month)
from
a,time1和time2两个字段必须是时间字段
7. sql 语句中如何比较当前时间与指定时间是否相同
代码的思路:
两个时间的相差的秒数,当等于0时,说明两日期相同。
getdate()表示获取当前系统时间
sql 语句中比较当前时间与指定时间是否相同参考代码如下:
select datediff(second,'2012-12-15 16:54:00',getdate())
(7)sql时间对比扩展阅读:
GETDATE() 函数从 SQL Server 返回当前的时间和日期。
语法:GETDATE()
实例如下
使用下面的 SELECT 语句:
SELECT GETDATE() AS CurrentDateTime
结果:
CurrentDateTime
2008-12-29 16:25:46.635
注释:上面的时间部分精确到毫秒。
8. SQL 数据库时间比较
有错误,你给的$time = date("Y-m-d G:i:s");是日期的格式化字符串,比较的时候要用引号因起来,另外你这个sql的意思是查询已经开始并且没有过期的记录条数,并没有判断哪条记录已经开始或过期,应该这样写:
$time = date("Y-m-d G:i:s");
$sql="select ExamInfo_Begin,ExamInfo_End from kl_examinfo where id='$id'";
//$id是你要查询的记录的主键值;
$query=mysql_query($sql);
list($begin,$end)=mysql_fetch_row($query);
if($begin<'$time')
{
echo "已经开始";
}
else
{
echo "还未开始";
}
if($end>'$time')
{
echo "没有过期";
}
else
{
echo "已经过期";
}
9. SQL里时间怎么比较
1\如果是指90天
select *
from table
where datediff(day,time,getdate())<=90
或者
select *
from table
where time>=dateadd(day,-90,getdate())
2\如果是3月
select *
from table
where time>=dateadd(month,-3,getdate())
3\如果是当前月往前推两个自然月的1号算起
select *
from table
where time>=Dateadd(mm,datediff(mm,0,getdate())-2,0)
10. sql数据库时间如何比较
SELECT DATEDIFF(DAY, (SELECT table.dtime FROM table WHERE ID=1 )
,GETDATE())
//
(SELECT table.dtime FROM table WHERE ID=1 )
是你要从数据库中提取的时间,重新自定义一下
GETDATE()是今天的日期
总的就是表示从数据库里提取的时间到今天的差距
如果是想比较数据库和数据库里的时间,就按照上面的方法再写一次