100分了:关于日期格式的问题
开发环境:VB6 + ACCESS2003 + ADO以下代码:
sql = "Insert into huanbiao2 (用户编号, 购物日期 ) values (" & CStr(Kahao) & ",#" & CStr(Rst1.Fields("购物日期")) & "#)"
在有的电脑上运行正常,而在有的电脑上运行不正常
在运行不正常的电脑上提示:日期的语法错误 在查询表达式 ‘#2011-2-22 下午 04:46:58# ’ 中。经查此时CStr(Rst1.Fields("购物日期"))的值为 2011-2-22 下午 04:46:58
而在运行正常的电脑上 CStr(Rst1.Fields("购物日期"))的值为 2011-2-22 16:46:58
查看了此两台电脑上的区域语言设置---自定义区域选项---时间 中 各设置依次如下:
1、时间格式:H:mm:ss
2、时间分隔符::
3、AM符号:上午
4、PM符号:下午
时间示例均为 17:54:30这种格式。
请大家帮忙回答以下问题:
1、为什么SQL语句中 包含 2011-2-22 下午 04:46:58 就不能正确执行
2、为什么两台电脑设置一样,而取得的CStr(Rst1.Fields("购物日期")) 的值却不同 (我直接把执行不成功的电脑上的数据库复制到 执行成功的电脑上 同样的从数据库中提取出来的时间 ,执行还是成功。 )
--------------------编程问答-------------------- 使用format函数规范日期格式:format(now,"YYYY-MM-DD HH:MM:SS") --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 第1个问题
因为 SQL的 日期格式就是 2011-2-22 16:46:58
而2011-2-22 下午 04:46:58 中间有中文 就不是DATETIME格式的日期格式了
或许是因为SQL不是中国人设计的原因.
第2个问题
时间格式 改成 HH:mm:ss
你用CStr(Rst1.Fields("购物日期")) 转换是转换成STRING 类型的
或者用楼上的format 强制转换 --------------------编程问答--------------------
+2 --------------------编程问答-------------------- 把后面的# 和cstr拿掉。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- sql = "Insert into huanbiao2 (用户编号, 购物日期 ) values (" & CStr(Kahao) & ",cdate('" & CStr(Rst1.Fields("购物日期")) & "'))" --------------------编程问答-------------------- --------------------编程问答--------------------
--------------------编程问答-------------------- "Insert into huanbiao2 (用户编号, 购物日期 ) values (" & CStr(Kahao) & "," & Rst1.Fields("购物日期") & ")" --------------------编程问答-------------------- Format(now,"YYYY-MM-DD HH:MM:SS")
把日期强制转换可以处理的格式,就不会出现兼容性的问题了
--------------------编程问答-------------------- 注意时间格式设置中H与h是不一样的。H代表24制,h代表12小时制。
只有12小时制中才会出现上午或下午几点。为避免此类错误可以用format强制格式化为SQL能接受的格式。 --------------------编程问答-------------------- date$ & time& --------------------编程问答-------------------- date$ & time$ --------------------编程问答-------------------- 1、楼主的问题可能不光是windows时间格式设置问题,access的日期格式可能也有影响
2、用format函数转换格式后肯定都没问题
--------------------编程问答-------------------- 也可以用程序实现电脑的日期时间格式为自己想要的格式 --------------------编程问答-------------------- 用库函数 format 吧
补充:VB , 网络编程