VFP调整本机日期时间与服务器日期时间一致

*!*调整本机日期时间与服务器日期时间一致( YYYY-MM-DD HH:MM:SS.FFF )
*!*以下cSqlStr及nCon为SQL查询串及连接句柄
cSqlStr="Select SysTime=Convert(Char,GetDate(),121)"      &&取服务器本地当前日期时间(已转换为字符型)
=SQLEXEC(nCon,cSqlStr,"SysDateTime")
SELECT SysDateTime
lcDateTime=ALLTRIM(SysDateTime.SysTime)
USE in "SysDateTime"
nYear=VAL(SUBSTR(lcDateTime,1,4))              &&取当前日期-年
nMonth=VAL(SUBSTR(lcDateTime,6,2))             &&取当前日期-月
nWeek=DOW(CTOT(lcdateTime))-1                  &&取当前日期-星期, 实际上此值可为1-7任意间的任意数
nDay=VAL(SUBSTR(lcDateTime,9,2))               &&取当前日期-日
nHours=VAL(SUBSTR(lcDateTime,12,2))            &&取当前时间-时
nMinutes=VAL(SUBSTR(lcDateTime,15,2))          &&取当前时间-分
nSeconds=VAL(SUBSTR(lcDateTime,18,2))          &&取当前时间-秒
nMSeconds=VAL(RIGHT(lcDateTime,3))             &&取当前时间-毫秒
*!*转换十进制数字为二进制字符(高低位互换、压缩)
lcDateBuf=Dec2Binstr(nYear)+Dec2Binstr(nMonth)+Dec2Binstr(nWeek)+Dec2Binstr(nDAY)
lcDateBuf=lcDateBuf+Dec2Binstr(nHours)+Dec2Binstr(nMinutes)+Dec2Binstr(nSeconds)+Dec2Binstr(nMSeconds)
*!*设置本机当地时间
DECLARE SHORT SetLocalTime IN win32api STRING SystemTime
=SetLocalTime(lcDateBuf)                      &&设置本机本地日期时间

*!*将十进制字符转换为二进制
FUNCTION Dec2Binstr
PARAMETERS DecStr
PRIVATE BinStr
BinStr=CHR(MOD(DecStr,256))+CHR(DecStr/256)
RETURN BinStr

posted @ 2020-02-14 10:57  老瓷  阅读(814)  评论(0编辑  收藏  举报