在MS Access中实现Ticks转日期格式的方法求助
在MS Access查询中将Ticks转换为日期格式
首先明确:你提到的ticks应该是.NET风格的时间戳,以100纳秒为单位,起始基准为公元1年1月1日00:00:00。MS Access没有内置的Ticks转日期函数,需要手动通过公式实现转换,核心逻辑是将Ticks转换为Access日期系统的数值(Access日期基准为1899年12月30日,数值整数部分代表天数,小数部分代表时间)。
转换公式
根据两种常见的字段存储类型,使用对应写法:
- 如果
ticks字段是64位数值类型(如Long Long):CDate( [created] / 864000000000 - 693594 ) - 如果
ticks字段是文本类型(存储为大数字字符串):CDate( CLngLng([created]) / 864000000000 - 693594 )
公式说明
864000000000:一天包含的Ticks总数(1天=86400秒,1秒=10,000,000 Ticks,相乘得到86400×107=8.64×1011)693594:公元1年1月1日到Access日期基准(1899年12月30日)的天数差,用于对齐两个日期系统的起始点CLngLng():将文本类型的Ticks转换为64位整数,避免数值溢出CDate():将计算后的数值转换为Access日期格式
查询示例
假设你的表名为your_table,Ticks字段为created,完整查询写法:
SELECT d.created AS OriginalTicks, CDate(CLngLng(d.created)/864000000000 - 693594) AS ConvertedDate FROM your_table AS d;
内容的提问来源于stack exchange,提问作者Juguete
相关产品推荐
相关产品推荐

