sqlserver时间的怪异问题,日期跨天 楼主的Date字段是smalldatetime类型吧?是由于smalldatetime的精度不足导致'2009/3/18 23:59:57'被四舍五入到'2009/3/19 00:00:00'的问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 smalldatetime从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据精确到分钟。29.998 秒或更低的 smalldatetime 值向下舍入为最接近的分钟,29.999 秒或更高的 smalldatetime 值向上舍入为最接近的分钟。 select * from dbo.view_tb_ad_putwhere ad_id=248 and datediff(day , datetime , '2009-03-18 ') = 0 create table tb(ad_id int,put int, [datetime] datetime, [hour] int)insert into tb values(248 ,77238 ,'2009-03-18 00:00:00', 21 )insert into tb values(248 ,65429 ,'2009-03-18 00:00:00', 22 )insert into tb values(248 ,46272 ,'2009-03-18 00:00:00', 23 )insert into tb values(248 ,22236 ,'2009-03-19 00:00:00', 0 )insert into tb values(248 ,10753 ,'2009-03-19 00:00:00', 1 )insert into tb values(248 ,6000 ,'2009-03-19 00:00:00', 2 )insert into tb values(248 ,4059 ,'2009-03-19 00:00:00', 3 )insert into tb values(248 ,3273 ,'2009-03-19 00:00:00', 4 )insert into tb values(248 ,100 ,'2009-03-19 00:00:00', 5 )insert into tb values(248 ,1 ,'2009-03-19 00:00:00', 6 )insert into tb values(248 ,1 ,'2009-03-19 00:00:00', 8 )insert into tb values(248 ,1 ,'2009-03-19 00:00:00', 9 )insert into tb values(248 ,1 ,'2009-03-19 00:00:00', 13 )goselect * from tb where ad_id=248 and datediff(day , datetime , '2009-03-18 ') = 0drop table tb/*ad_id put datetime hour ----------- ----------- ------------------------------------------------------ ----------- 248 77238 2009-03-18 00:00:00.000 21248 65429 2009-03-18 00:00:00.000 22248 46272 2009-03-18 00:00:00.000 23(所影响的行数为 3 行)*/ 我这里没有问题。虽说datetime有精度问题但也是是3ms,你的是3s,差那么大 或许如钻钻所说,你的是smalldatetime 前5楼散分!! 请问我把某个int型字段设置为“种子”让它每次自动增加1后,为什么把记录删除了它还是从原来的地方开始增加??? SQL SERVER 2000 ANALYSIS SERVICES 企业版的情况下仍然不出现 “回写”选项 SQL语句字段值自加 关于time 的问题 怎样判断某个字段在记录集里是重复的?sql语句 这段EXEC()该怎样写? 两个表中字段相同, 视图的问题 请问:SQL Sever中返回上条语句执行成功与否的全局变量是什么? 请大家帮我改一个SQL语句好吗? sql问题
where ad_id=248 and datediff(day , datetime , '2009-03-18 ') = 0
insert into tb values(248 ,77238 ,'2009-03-18 00:00:00', 21 )
insert into tb values(248 ,65429 ,'2009-03-18 00:00:00', 22 )
insert into tb values(248 ,46272 ,'2009-03-18 00:00:00', 23 )
insert into tb values(248 ,22236 ,'2009-03-19 00:00:00', 0 )
insert into tb values(248 ,10753 ,'2009-03-19 00:00:00', 1 )
insert into tb values(248 ,6000 ,'2009-03-19 00:00:00', 2 )
insert into tb values(248 ,4059 ,'2009-03-19 00:00:00', 3 )
insert into tb values(248 ,3273 ,'2009-03-19 00:00:00', 4 )
insert into tb values(248 ,100 ,'2009-03-19 00:00:00', 5 )
insert into tb values(248 ,1 ,'2009-03-19 00:00:00', 6 )
insert into tb values(248 ,1 ,'2009-03-19 00:00:00', 8 )
insert into tb values(248 ,1 ,'2009-03-19 00:00:00', 9 )
insert into tb values(248 ,1 ,'2009-03-19 00:00:00', 13 )
goselect * from tb
where ad_id=248 and datediff(day , datetime , '2009-03-18 ') = 0drop table tb/*
ad_id put datetime hour
----------- ----------- ------------------------------------------------------ -----------
248 77238 2009-03-18 00:00:00.000 21
248 65429 2009-03-18 00:00:00.000 22
248 46272 2009-03-18 00:00:00.000 23(所影响的行数为 3 行)
*/