当前位置:编程学习 > C#/ASP.NET >>

一个sql问题在线等

"select * from 人工数据 where inputDate = #" + date + "# and HeadTime >= #" + beginTime + "# and TailTime <= #" + endTime +"# order by HeadTime";

以上的sql,我想在inputDate这个字段单比较datetime的前面的年月日,而后面的两个字段只比较具体时间,不比较年月日,怎么做? --------------------编程问答-------------------- 类似转换成convert(varchar(30),getdate(),112)后比较, --------------------编程问答-------------------- 你看你数据库字段中的inputdate和Headtime是什么类型,如果是字符型就比较方便,如果是日期类型就比较麻烦,你有这种需求,就应该在建库的时候把日期和时间单独存放,例如我通常会在数据库中放三个事件字段,日期时间,日期,时间,这样想怎么比较就怎么比较。 --------------------编程问答-------------------- 看什么数据库,有函数可以用
如Year(inputDate),Month(inputDate),Date(inputDate),楼主看着办 --------------------编程问答-------------------- 我是access --------------------编程问答-------------------- 不清楚楼主的意思

DateTime 类型
dateTime.ToString(格式化参数)//想变什么样都可以,只要日期也行,只要时间也行
dateTime.Date//只剩下日期

数据库里面
Date(字段)//返回字段的日期部分
Time(字段)//返回字段的时间部分
类似,年、月、日、小时、分、秒都可以得到

想怎么比较都可以 --------------------编程问答-------------------- "DECLARE @tdate varchar(30)
DECLARE @stime varchar(30)
DECLARE @etime varchar(30)
@tdate=#"   +   date   +   "#   
@stime=#"   +   beginTime   +   "#   
@etime=#"   +   endTime   +   "#   

select   *   from   人工数据   where   inputDate   = convert(varchar(30),@tdate,105) and   HeadTime   > = convert(varchar(30),@stime,108) and   TailTime   <= convert(varchar(30),@tdate,108) order   by   HeadTime"; 

convert(varchar(30),@tdate,105)="21-06-2006"
convert(varchar(30),@tdate,104)="21.06.2006"
convert(varchar(30),@tdate,103)="21/06/2006
" --------------------编程问答-------------------- 顶,路过 --------------------编程问答-------------------- 不懂ACCESS
看看SQL:
select convert(char(10),getdate(),120) '年月日'
select convert(varchar,getdate(),114) '时分秒毫秒'
/*
年月日        
---------- 
2008-02-02

(所影响的行数为 1 行)

时分秒毫秒                          
------------------------------ 
14:18:05:810

(所影响的行数为 1 行)

*/
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,