vbs格式化日期及变量调用

先说下需求,是在SecureCRT调用VBS脚本实现自动化功能时,里面有一个SQL调用语句,该SQL有一个基于日期条件的查询,这个日期由于不是当天而是前天,所以需要通过VBS脚本将日期先格式化成对应的时间格式,并转化为想要的格式,再通过变量的形式转化使用。

1、VBS时间格式化

VBS取时间有函数date(),如果需要取三天前的日期可以通过如下代码实现:



<br />
Dim tday
tday = dateadd("d",-3,date) 
而输出的时间格式可能不能满足具体的需求,因为这个输出的是YYYY/MM/DD的格式,这个时候就需要格式化为所需的格式,比如这里我想格式化为YYYYMMDD的格式。VBS实现格式化的一个函数写法如下:



<br />
Function   FormateDateTime(sendTime,Para)
    select   case   Para
    Rem   YYYYMMDDHHmmss
    case   "1"
        sendTime   =   year(sendTime)   &   right( "00"   &   month(sendTime),2)   &   right( "00"   &   day(sendTime),2)   &   right( "00 "   &   hour(sendTime),2)   &   right( "00 "   &   minute(sendTime),2)   &   right( "00 "   &   second(sendTime),2)
    Rem   YYYYMMDD
    case   "2"
        sendTime   =   year(sendTime)   &   right( "00"   &   month(sendTime),2)   &   right( "00"   &   day(sendTime),2)
    Rem   YYYY-MM-DD
    case   "3"
        sendTime   =   year(sendTime)   & "-"&   right( "00"   &   month(sendTime),2)   & "-"&   right( "00"   &   day(sendTime),2)
    Rem   YYYY年MM月DD日
    case   "4"
        sendTime   =   year(sendTime)   & "年"&   right( "00 "   &   month(sendTime),2)   & "月"&   right( "00"   &   day(sendTime),2)& "日 "
    Rem   YYYY-MM-DD   HH:mm:ss
    case   "5"
        sendTime   =   year(sendTime)   & "-"&   right( "00 "   &   month(sendTime),2)   & "-"&   right( "00"   &   day(sendTime),2)   & "   "&   right( "00 "   &   hour(sendTime),2)   & ": "&   right( "00 "   &   minute(sendTime),2)   & ": "&   right( "00 "   &   second(sendTime),2)
    end   select
        FormateDateTime   =   SendTime
end   Function
MsgBox FormateDateTime(date(), "3")   
这里实现的FormateDateTime函数可以实现如下几种格式的时间格式化:



<br />
YYYYMMDDHHmmss
YYYYMMDD
YYYY-MM-DD
YYYY年MM月DD日
YYYY-MM-DD   HH:mm:ss 

2、SQL中的调用

可以看出上面case 2就是我们需求的格式,所以具体SQL调用转换前的变量为:



<br />
Dim tday
tday = dateadd("d",-3,date)
tday = year(tday )   &   right( "00"   &   month(tday ),2)   &   right( "00"   &   day(tday ),2)
对应的SecureCRT里的调用格式为:



<br />
crt.Screen.Send "select * from history where  date > '"& tday & "' ;" & chr(13)
<br />

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注