
之前的回答是随意复制代码的 后来觉得这样太不像话了 那么附上源码:$conn=mysql_connect('','','');mysql_select_db();
mysql_query("set names'utf8'");
$stime='2012-04-01';
$etime=date('Y-m-d');
$arr=array();
$res=mysql_query("select from tab_xxx");#从你的表中查出数据
while($row=mysql_fetch_assoc($res)){
$arr[$row['date']]=$row;#把你的数据按照日期=》数据的数组存起来。
}
$sql="select datediff('"$stime"','"$etime"')";#查询你的时间段内总共有多少天
$datenum=mysql_query($sql);
$nums=mysql_fetch_array($datenum);
$num=$nums[0];
for($i=0;$i<$num;$i++){
$sql="select date_add('"$stime"',INTERVAL 1 DAY);";
$res=mysql_query($sql);
$row=mysql_fetch_array($res);
if(!array_key_exists($row[0])){#检测 如果查出来的数据中 没有该日期对应的数据
#$sql="insert into tab_xxx(date,,,,)values('"$row"')"; 向你的表中补空该日的数据
}
}楼主自己去测试一下吧。思路整体实现都在这儿了 我这个是php的做法。不过是依赖数据的。c#的你自己看着改一下就好了
首先我不知道你的日期字段到底是什么,这一点我想要先确定,如果是datetime型的话,那么你按照这个排序照理来说本来就是精确到秒的,你最好拿出一个日期的实际值给我们
如果你的日期字段其实是文本型,存储的诸如:'20090101’,那么根本就不可能考虑什么秒或者毫秒,因为你根本就没有存储这些信息
至于SqlServer的时间排序法,datetime型因为本身就是诸如
'20091001 11:23'这样的格式,所以排序根本不需要考虑什么日期相同怎么办,如果有些奇怪的人喜欢用月、年、日期排序,也不是不可以
比如说
order by month(gatedate()),year(gatedate()),day(gatedate())
秒和分钟的函数我急不起来了,你可以查一下帮助,无论你想要怎么排序都是非常容易的
select from 表 order by 时间字段
这样取出来的数据就是按时间排序了。
如果想数据不用order by 就是按时间排序的,需要把时间字段设置成聚集索引。
就是对日期进行倒排序
select from tableName -- 假设你的表的名字是tableNameorder by dtcol desc; -- 假设你的日期字段名是 dtcol; desc表示倒排序
以上就是关于现在要从数据库查询数据,要求结果按日期排序,并返回连续日期,假如数据中有间断,要求新增一条数据补齐。全部的内容,包括:现在要从数据库查询数据,要求结果按日期排序,并返回连续日期,假如数据中有间断,要求新增一条数据补齐。、sql order by 日期 排序问题、sql带-的日期可以排序吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)