时间类型转换和比较大小

bapiyang 2010-10-12 06:38:44
SQL语句:sql = "select * from Tb where sttime between #"+date1+"# and #"+date2+"# order by [id]"

问题一:“ #"+date1+"# ”表明在ACCESS数据库中,该字段是“日期”类型的对吧,日期型字段必须要这样写?

问题二:如果“sttime”字段是字符串型,例如从“DataTimePicker”控件中获取的日期值是“X年X月X日格式”的,是否可以比较?
如果要转换用“Convert.ToDataTime()”是吗?

在Access中不能
select
convert(datetime,replace(replace(replace(qssj,'年','-'),'月','-'),'日','')) as qssj,
convert(datetime,replace(replace(replace(jzsj,'年','-'),'月','-'),'日','')) as jzsj
from xfb
...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
TextBox.text.tostring("yyyy-MM-dd") ?
bapiyang 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]
cdate转换
DataTimePicker.Value.ToString("yyyy-MM-dd")
selectSql = "select * from Tb where 日期 between #"+ start+"# and #" + end+"#"
oledbparameter
[/Quote]

谢谢您。
问题解决了,但是在下还是有点疑问。为什么“TextBox.text.tostring("yyyy-MM-dd")”怎会提示错误?
还有,对于Access中的日期型的字段应该怎样读取?
wuyq11 2010-10-15
  • 打赏
  • 举报
回复
TextBox.text字符类型
bapiyang 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hj_daxian 的回复:]
TextBox.text.tostring("yyyy-MM-dd") ?
[/Quote]

转换为“时间格式”然后插入到对应的Access数据库表中,对应的字段是“日期/时间”型的。。。
wuyq11 2010-10-12
  • 打赏
  • 举报
回复
cdate转换
DataTimePicker.Value.ToString("yyyy-MM-dd")
selectSql = "select * from Tb where 日期 between #"+ start+"# and #" + end+"#"
oledbparameter
Snowdust 2010-10-12
  • 打赏
  • 举报
回复
问题一:如果是拼SQL语句的话就用#表示日期。除了拼SQL语句之外的一种更好的办法是采用参数传递的方式,可以避免SQL注入攻击。
问题二:DateTimePicker有一个Value属性,是DateTime类型的,你将数据库取出的值与DateTimePicker.Value进行日期比较就行了。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧