当前位置:编程学习 > VB >>

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 楼 yiguangqiang88 的回复:
使用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 楼 veron_04 的回复:
引用 1 楼 yiguangqiang88 的回复:
使用format函数规范日期格式:format(now,"YYYY-MM-DD HH:MM:SS")

+1

+2 --------------------编程问答-------------------- 把后面的# 和cstr拿掉。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- sql = "Insert into huanbiao2 (用户编号, 购物日期 ) values (" & CStr(Kahao) & ",cdate('" & CStr(Rst1.Fields("购物日期")) & "'))" --------------------编程问答-------------------- --------------------编程问答--------------------
引用 1 楼 yiguangqiang88 的回复:
使用format函数规范日期格式:format(now,"YYYY-MM-DD HH:MM:SS")

--------------------编程问答-------------------- "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 ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,