UPDATE message SET 到站时刻= NULL WHERE 到站时刻='00:00' 为社么我这样修改不了呢,语法没错啊
建议,改成int型 到站时间 、发车时间 起点站 4:20 5:00 5:10 5:50 6:00 6:30 6:35 7:10 终点站---〉 到站时间 、发车时间 -1 260 300 310 350 360 390 395 430 -1好处,加减方便,速度快查询:select case when 到站时间=-1 then '起点站' else convert(varchar(10),到站时间/60)+':'+right('0'+convert(varchar(10),到站时间%60),2) end as 到站时间, case when 发车时间=-1 then '终点站' else convert(varchar(10),发车时间/60)+':'+right('0'+convert(varchar(10),发车时间%60),2) end as 发车时间,注意: 超过一小时会有问题
解决小时问题select case when 到站时间=-1 then '起点站' when 到站时间>=3600 then convert(varchar(10),到站时间/3600)+':'+right('0'+convert(varchar(10),(到站时间%3600)/60),2)+':'+right('0'+convert(varchar(10),到站时间%60),2) else convert(varchar(10),到站时间/60)+':'+right('0'+convert(varchar(10),到站时间%60),2) end as 到站时间, case when 发车时间=-1 then '终点站' when 发车时间>=3600 then convert(varchar(10),发车时间/3600)+':'+right('0'+convert(varchar(10),(发车时间%3600)/60),2)+':'+right('0'+convert(varchar(10),发车时间%60),2) else convert(varchar(10),发车时间/60)+':'+right('0'+convert(varchar(10),发车时间%60),2) end as 发车时间, 发车时间-到站时间 as 停留秒数 from tablename
具体社么意思啊,有没有这方面的简明教程,我数据库知识还在温饱线下用null 确实方便
可用完之后对数据类型转换方面的知识也没社么长进啊
大力哥,麻烦讲几条典型的转换语句好吗?谢谢了先
select convert(char(8),getdate(),112) ----20020101
select convert(char(8),getdate(),108) ---06:05:05
得到的是系统时间啊,请问怎么弄才得到想要的列上的时间转换呢
具体怎么指定,我没用过,麻烦了老大!
你在显示的时候:select isnull(convert(char(5),到站时间,108),'起点站'),isnull(convert(char(5),发车时间,108),'终点站') from 表
谢谢了,有问题再Message 你哈
SET 到站时刻= NULL
WHERE 到站时刻='00:00'
为社么我这样修改不了呢,语法没错啊
起点站 4:20
5:00 5:10
5:50 6:00
6:30 6:35
7:10 终点站---〉 到站时间 、发车时间
-1 260
300 310
350 360
390 395
430 -1好处,加减方便,速度快查询:select case when 到站时间=-1 then '起点站'
else convert(varchar(10),到站时间/60)+':'+right('0'+convert(varchar(10),到站时间%60),2)
end as 到站时间,
case when 发车时间=-1 then '终点站'
else convert(varchar(10),发车时间/60)+':'+right('0'+convert(varchar(10),发车时间%60),2)
end as 发车时间,注意:
超过一小时会有问题
when 到站时间>=3600 then convert(varchar(10),到站时间/3600)+':'+right('0'+convert(varchar(10),(到站时间%3600)/60),2)+':'+right('0'+convert(varchar(10),到站时间%60),2)
else convert(varchar(10),到站时间/60)+':'+right('0'+convert(varchar(10),到站时间%60),2)
end as 到站时间,
case when 发车时间=-1 then '终点站'
when 发车时间>=3600 then convert(varchar(10),发车时间/3600)+':'+right('0'+convert(varchar(10),(发车时间%3600)/60),2)+':'+right('0'+convert(varchar(10),发车时间%60),2)
else convert(varchar(10),发车时间/60)+':'+right('0'+convert(varchar(10),发车时间%60),2)
end as 发车时间,
发车时间-到站时间 as 停留秒数
from tablename
我一定试试,昨晚原本想通宵的,可惜学校为配合“非典”已经灯火管制了
郁闷啊,一晚没睡着:)刚建表时对SQL语言的无知,导致表结构上的问题还不合理如:车次ID(int) 车次(char) 到站时刻(datatime) 发车时刻(char) 里程 硬坐票价
2, 1354/1351次(成都-->上海)普快 ,18:50, 第三日10:42, 2351, 126原因是当时只考虑用户输入车次模糊查询,对车次、发车时刻用char型是因为这些是固定不变的省了字段合并工作,我当时还不知道有那个功能:)但现在来看很不合理了,因为在 按任意站次查询的时候,车次ID、 车次 还是不变,但到站时刻、发车时刻、里程、 硬坐票价是要变的。如:1354/1351次(成都-->上海)普快 如果成都-->上海, 其它信息不变
但如果是 从绵阳上的车,那么 到站时刻、发车时刻、里程、 硬坐票价是都要变了当然 后者还是可以将那些变动信息重新绑定显示的,这就涉及SQL的选择问题(我还在试)。
还有就是在想有没有必要将 车次查询 中的 到站时刻(datatime) 发车时刻(char) 里程 硬坐票价 等通过以下车次详情表来得到:车次ID 站次 经由站 到站时刻 发车时刻 公里数 天数
2 1 成都 ,NULL ,18:5 ,0 0
2 2 广汉 ,19:34 ,19:39 ,38 0
2 3 德阳 ,19:59 ,20:03 ,61 0
2 4 绵阳 ,20:48 ,20:58 ,115 0
2 5 江油 ,21:34 ,21:43 ,157 0
2 6 昭化 ,00:02 ,00:08 ,298 1
2 8 广元 ,00:45 ,00:57 ,319 1
.
.
.还有张票价表,结构也弄好了,包括 软硬座 卧铺(上中下) 卧铺(上下)
因为不知道价格和其它参素的必然联系,所以只能建表,现在可以暂时不考虑给出以上内容,是因为自己技术上还很不全面,一定会有很多不妥的地方,想请各位大哥看看
哪些地方可以改进,希望能找到一种比较合理的方案的确太长了:)
到站时刻(datatime null) 发车时刻(datatime null)
车次ID 站次 经由站 到站时刻 发车时刻 公里数 天数
2 1 成都 ,NULL ,1900-1-1 18:5 ,0 0
2 2 广汉 ,1900-1-1 19:34 ,1900-1-1 19:39 ,38 0
2 3 德阳 ,1900-1-1 19:59 ,1900-1-1 20:03 ,61 0
2 4 绵阳 ,1900-1-1 20:48 ,1900-1-1 20:58 ,115 0
2 5 江油 ,1900-1-1 21:34 ,1900-1-1 21:43 ,157 0
2 6 昭化 ,1900-1-2 00:02 ,1900-1-2 00:08 ,298 1
2 7 广元 ,1900-1-2 00:45 ,1900-1-2 00:57 ,319 1
...
2 X 上海 ,1900-1-3 10:42 ,null ,319 1这样,停靠时间可以用datediff(minute,到站时刻,发车时刻)计算
第几天到也是能计算的
我是在vs.c#下用的sqlDataAdapter控件,配置好后它自动生成了SqlConnection,再根据向导生成的dataset,最后加上了DataGrid,并用向导生成样式,效率很高,但自动生成了些东西,虽然代码不难,但象我这种第一次用VS的菜鸟来说觉得不够灵活。有两个问题不明白:1、在以上情况下,怎样才能将车次详情表提取的信息绑定到以原来的那个DataGrid上
2、用select isnull(convert(char(5),到站时间,108),'起点站'),isnull(convert(char(5),发车时间,108),'终点站') from 表 只能找到两列,这条语句要怎么样做才能和其它的一起提取出来。