haodd 发表于 2010-12-2 14:15:24

字符串如何格式化成标准的时间格式 【已解决】

本帖最后由 haodd 于 2010-12-3 13:50 编辑

mssql的表中存放着标准时间的数据,字段类型为datetime
数据是通过SQL语句getdate()写进去的。

当用au3从mssql读取datetime类型的数据时
输出的是类似这样的字符串2010122120635如何格式化成标准的时间格式

如下2010-12-2 12:06:35

yhxhappy 发表于 2010-12-2 15:01:15

这个时间字符串都不规则
照楼主给的示例是2010-12-2 12:06:35,意思就是时间段是两位数,不够两位会补零,所以时间是后六位,年份是前4位,余下的中间三位就是 月 和 日
2010122120635

122 到底是1月22日呢还是12月2日,不好判断,等高手来处理吧

haodd 发表于 2010-12-3 13:50:35

已解决了 呵呵我当时也看错了 从sql读取出来的datetime类型是 能自动补位的我写漏了 呵呵

应该是
20101202120635

呵呵

3mile 发表于 2010-12-3 16:52:56

回复 3# haodd
纯体力活。
$str=20101202120635
    If StringLen($str)=14 Then
    $Data=StringMid($str,1,4)&"-"&StringMid($str,5,2)&"-"&StringMid($str,7,2)
    $Time=StringMid($str,8,2)&":"&StringMid($str,10,2)&":"&StringMid($str,12,2)
    $D_T=$Data&" "&$Time
    MsgBox(0,0,$D_T)
Else
    MsgBox(0,0,'字符串不合法')
EndIf

chenronting 发表于 2010-12-3 19:52:56

呵呵, 楼上的办法真好。

boyhong 发表于 2011-5-24 12:38:22

通过论坛漫游至此,解决了我的一个问题,感谢3mile。

njupter 发表于 2014-7-9 11:41:39

回复 4# 3mile


    稍微有点小错误,应该是这样:

$str = 20140323000009
$str = 20101202120635

If StringLen($str) = 14 Then
        $Data = StringMid($str, 1, 4) & "-" & StringMid($str, 5, 2) & "-" & StringMid($str, 7, 2)
        $Time = StringMid($str, 9, 2) & ":" & StringMid($str, 11, 2) & ":" & StringMid($str, 13, 2)
        $D_T = $Data & " " & $Time
        MsgBox(0, 0, $D_T)
Else
        MsgBox(0, 0, '字符串不合法')
EndIf
页: [1]
查看完整版本: 字符串如何格式化成标准的时间格式 【已解决】