设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2888|回复: 2
打印 上一主题 下一主题

[Access本身] Access里如何获取毫秒值?

[复制链接]
跳转到指定楼层
1#
发表于 2015-5-12 20:26:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单位里用Sql anywhere数据库里(db格式)+Pbuilder,有个数据表的ID字段是主键,值为20150512121315045424这样的每创建一个新记录时会自动生成ID字段,不知道生成规律是什么,最后6位645424也不知道是微秒还是毫秒,而且很多数据都是424结尾的,看不出来和其他字段有什么关系。

我现在通过ODBC连接了该表,想用Access处理数据,在添加记录时,不知道如何生成上述ID值,初步考虑后6位中的前3位用left(ns,3)表示(纳秒的前3位),不知道有没有其他好的办法。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2015-5-13 12:08:00 | 只看该作者
Access的时间类型只能到秒吧?
秒后面补六个0,不就可以了吗?
msgbox format(now(),"yyyymmddhhnnss") & “000000”
3#
 楼主| 发表于 2015-5-14 08:21:52 | 只看该作者
todaynew 发表于 2015-5-13 12:08
Access的时间类型只能到秒吧?
秒后面补六个0,不就可以了吗?
msgbox format(now(),"yyyymmddhhnnss") & ...

因为这个字段是主键且自动生成,格式又要求固定,所以用补0的方式可能会导致重复。

我用API解决了,但是这段API在Access里使用时有点问题,yyyymmdd会变成“年月和本周第几天”这种格式,大家自己调试一下,等上完班我再来补充正确用法。


Option Compare Database

Private Type SYSTEMTIME
     wYear As Integer
     wMonth As Integer
     wDayOfWeek As Integer
     wDay As Integer
     wHour As Integer
     wMinute As Integer
     wSecond As Integer
     wMilliseconds As Integer
         
   End Type
   
   Private Declare PtrSafe Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
    Public Function getdatetime() As String
     Dim LCT As SYSTEMTIME
     Dim ymd As String, hms As String
     
     GetLocalTime LCT
     ymd = Format(LCT.wYear & "-" & LCT.wMonth & "-" & LCT.wDay, "yyyyMMdd")
     hms = Format(LCT.wHour, "00") & Format(LCT.wMinute, "00") & Format(LCT.wSecond, "00") & Format(LCT.wMilliseconds, "000")
     getdatetime = ymd & hms
   End Function

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 16:12 , Processed in 0.105480 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表