superpangya 发表于 2010-3-30 16:16:49

[已解决]这个关于日期的问题,怎么解决?(6#有源码,大家帮忙看看.)

本帖最后由 superpangya 于 2010-4-6 10:16 编辑



用msgbox输出显示的是2010年3月30日,为什么一到listview里就显示20100330000000了,这个是怎么回事? 怎么解决?

用这个日期的下拉菜单选择时间很方便,但是只能输入日期,如果我想把具体时间也加上怎么做?

谢谢大家帮忙..


补充说明:
刚才查看了下,数据库里面的时间字段显示的是2010-3-30,但到了LISTVIEW里面就变了..

superpangya 发表于 2010-3-30 17:34:42

:face (2):谁来帮帮我啊?

superpangya 发表于 2010-3-31 08:19:05

:face (9):来人啊..帮帮忙.

wgboy 发表于 2010-3-31 08:23:22

字段类型换成文本的试试。。

C.L 发表于 2010-3-31 10:38:59

用msgbox输出显示的是2010年3月30日,为什么一到listview里就显示20100330000000了,这个是怎么回事? 怎么解决?
用这个日期的下拉菜单选择时间很方便,但是只能输入日期,如果我想把具体时间也加上怎么做?



第一个问题,应该是数据库表数据类型定义的问题,没看到你的代码,你自已检查一下,修改数据类型可以解决
第二个问题,可以通过Au3获取具体时间,然后加到日期那里去就可以了

没有你的代码,我只是向你提供了解决问题的思路

superpangya 发表于 2010-3-31 11:06:02


这个是源程序和数据库,
数据库的时间字段为DATATIME, 如果改成文本的话,不太好吧?


时间我想自己设置,不是通过自动获取的方式.

superpangya 发表于 2010-3-31 16:16:11

大家帮帮忙啊.........

superpangya 发表于 2010-4-1 07:55:56

:face (18):求高手帮忙...

C.L 发表于 2010-4-1 10:14:21

本帖最后由 C.L 于 2010-4-1 10:27 编辑

看了你的源码, 在日期处理上,你的日期输入框是按照数据库读出的数据类型来确定是否建立日期输入框,而写入数据库该字段的数却是从这个输入框读到的字符串,这就有问题了,数据库这个字段定义为datatime,写入的只有日期没有时间,所以listview后面的一串0,是必然的.

我帮你改了一下adds()这个函数,可以解决你上面的问题.
Func adds($w, $arr) ;建立Label(数量)

      For $i = 0 To $w - 1

                $y = StringSplit($arr[$i + 1], " ") ;以指定分隔符把字符串拆分成若干子串,返回一个数组,第一个元素($array)保存拆分后子串的数量,其余元素($array,$array 等等)则保存着拆分后的每个字符串
                                $linshi =StringRight($arr[$i + 1],8)
                                If $linshi = 'datetime' Then
                                       
                                        Local $DTM_SETFORMAT_, $style
                                        $ninput[$i] = GUICtrlCreateDate("", 340, 355 + 20 * $i, 450, 20)
                                        $DTM_SETFORMAT_ = 0x1032        ; $DTM_SETFORMATW
                                        $style = "yyyy/MM/dd HH:mm:ss"
                                        GUICtrlSendMsg($ninput[$i], $DTM_SETFORMAT_, 0, $style)
;~                                 $ninput[$i]=GUICtrlCreateDate("", 340, 355 + 20 * $i, 450, 20)
                          Else
                                $ninput[$i] = GUICtrlCreateInput("", 340, 355 + 20 * $i, 450, 20)
                                EndIf

                $nLabel[$i] = GUICtrlCreateLabel($y, 280, 355 + 20 * $i, 60, 20)
                               

               

      Next

EndFunc   ;==>adds

C.L 发表于 2010-4-1 10:19:06

贴一个实测图

C.L 发表于 2010-4-1 10:22:21

本帖最后由 C.L 于 2010-4-1 10:24 编辑

这个是源程序和数据库,
数据库的时间字段为DATATIME, 如果改成文本的话,不太好吧?


时间我想自己设 ...
superpangya 发表于 2010-3-31 11:06 http://www.autoitx.com/images/common/back.gif

时间可以自已输入,直接在输入框那里就可以改

l4ever 发表于 2010-4-5 13:04:38

你的数据库字段类型设置成了时间,格式是显示的格式
设置成文本就可以了

superpangya 发表于 2010-4-6 10:15:56

谢谢楼上朋友们的热情帮助...
页: [1]
查看完整版本: [已解决]这个关于日期的问题,怎么解决?(6#有源码,大家帮忙看看.)