大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
select convert(varchar,time,23),datepart(hh,time),avg(valueavg),max(valueavg)
在齐河等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设、外贸营销网站建设 网站设计制作定制设计,公司网站建设,企业网站建设,成都品牌网站建设,全网营销推广,成都外贸网站制作,齐河网站建设费用合理。
from tb group by convert(varchar,time,23),datepart(hh,time)
首先,你不需要用一个timer来计时。
你在外出的当下,查找出数据库当前时间(你用的是sqlserver数据库,可以使用函数getdate(),语句是:select getdate() 假设是查出时间是t2)即可。如果数据库是在本地电脑上运行,其实也可以获取本机时间,可以写成,t2:=now;
进入时间,你是查找数据库的表内的数据,假设是t1,这样你可以t2-t1就好了。
如果N辆车进来,你需要用N个timer去监控,岂不是增加负担,也是没必要的。
其次是,你对“分钟数不到1小时也记为1小时”的处理
uses DateUtils //记得要引用这个单元
procedure TForm1.Button1Click(Sender: TObject);
var t1,t2:Tdatetime;
begin
t2:=now; //外出时间,这里我获取的是本地时间
//t1时间你是从数据库相关表里面获取的,我这里随便打了一个
t1:=strToDateTime('2013/05/25 00:53:00');
//如果小时和分钟数刚好相等,就不+1小时,
//否则,如果时间超出1分钟,就+1小时来计算
if Formatdatetime('H:mm',t1)=Formatdatetime('H:mm',t1) then
label1.Caption:=inttostr(HoursBetween(t2,t1))
else
label1.Caption:=inttostr(HoursBetween(t2,t1)+1);
end;
SELECT DATEPART(hh,'2013-08-08 13:12:11') =13
SELECT DATEPART(mi,'2013-08-08 13:12:11') =12
SELECT DATEPART(ss,'2013-08-08 13:12:11') =11
SQL语句获取各种时间的方法
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18') --返回:17
4. datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2004-10-15') --返回 10
5. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五
6. day(), month(),year() --可以与datepart对照一下
select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)
7. select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,getdate())
,今天是周几=datename(weekday,getdate())
函数 参数/功能
GetDate( ) --返回系统目前的日期与时间
DateDiff (interval,date1,date2) --以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (interval,number,date) --以interval指定的方式,加上number之后的日期
DatePart (interval,date) ---返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) --返回日期date中,interval指定部分所对应的字符串名称
参数 interval的设定值如下:
值 缩 写(Sql Server) Access 和 ASP 说明
Year Yy yyyy 年 1753 ~ 9999
Quarter Qq q 季 1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日 1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日 1-7
Week Wk ww 周,一年中的第几周 0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒 0 ~ 59
Millisecond Ms - 毫秒 0 ~ 999
access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似
可用函数datename 返回代表指定时间字段的小时和分钟。SELECT datename(Hour Hh h, '2017-10-15 10:30:00') --返回:10,即10小时。SELECT datename(Minute Mi n, '2017-10-15 10:30:00') --返回:30,即30分钟。
拓展资料:
1、SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
2、SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
你什么数据库?你这批存放时间是什么类型,字符型吗?
还有,分钟应该是60进制吧?你说的24进制是怎么回事,是指一天吗?
还有,比如23:59 这样的,保留几位小数呀?
暂且给你保留2位小数,把那个字段当作字符串来处理
sqlserver写法:
select cast(substring(字段名,1,2) as int)+round((cast(substring(字段名,4,2) as int)+0.0)/60,2) from 表名
oracle写法
select substr(字段名,1,2)+round(substr(字段名,4,2)/ 60,2) from 表名
用WHERE EXTRACT(HOUR FROM 时间字段)=6 或者楼上的TO_CHAR()感觉EXTRACT效率高点,而且返回是类型是整型! 答题不易,互相帮助,手机提问的朋友在客户端右上角评价点满意即可. 如认可我的回答,请点击采纳为满意回答按钮.