【问题标题】:Convert 13-digit string to date in MS Access Query在 MS Access Query 中将 13 位字符串转换为日期
【发布时间】:2019-01-29 22:41:03
【问题描述】:

我收到了一些数据的链接,其中的日期在文本列中存储为 SHORT TEXT 字段中的 13 位数字。我想在 MS Access 2016 数据库表中将这些显示为日期。我想将它们附加到的字段是日期格式的字段。

日期采用这种格式(它们都应该是最近的日期):

1533268800000, 1533697200000, 1533783600000, 1534129200000, 1534129200000

有谁知道我如何将这些字符串转换为格式为“25/04/2018 16:13:46”的日期?我尝试了该站点的一些建议,但到目前为止,Access 中没有任何效果。

这是我当前的查询,但它在 Access 中给了我错误的日期,但在 Excel 中给出了正确的日期:

UPDATE SH_Interviews_Data 
INNER JOIN SH_Data_addition 
ON SH_Interviews_Data.sel_nombre = SH_Data_addition.id_nombre 
SET SH_Data_addition.cargo = [SH_Interviews_Data].[cargo], 
SH_Data_addition.ultimo_contac1 = [SH_Interviews_Data].[fecha_entrev]/86400000+TimeValue("1970-01-01") ;

提前致谢。

【问题讨论】:

标签: date ms-access sql-update


【解决方案1】:

Andre 提供的链接中有一些非常详细的答案,但如果您想要一个快速而肮脏的解决方案,这个简单的函数将获取字符串并为您提供日期和时间;

Function UnixEpochTime(sInput As String) As Date

    Dim iSeconds As Long
    Dim dStart As Date

    dStart = #1/1/1970#

    iSeconds = Val(sInput / 1000)

    UnixEpochTime = DateAdd("s", iSeconds, dStart)


End Function

DateAdd 只处理整秒,因此删除了字符串的毫秒部分。

【讨论】:

    【解决方案2】:

    抱歉,我想在查询中执行此操作。我可能对此还不够清楚。无论如何,此查询用于将日期粘贴到文本字段中(如果将 CDate 输入到 DATE 字段中,则可以从最后一行删除):

    UPDATE JoinTbl 
    INNER JOIN InputTbl 
    ON JoinTbl.ID = SH_Data_addition.ID 
    SET SH_Data_addition.cargo = [JoinTbl].[cargo], 
    SH_Data_addition.ultimo_contact = CDate([JoinTbl].[fecha_entrev]/86400/1000+25569);
    

    【讨论】:

      猜你喜欢
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 2020-11-11
      • 1970-01-01
      • 2015-06-24
      • 1970-01-01
      相关资源
      最近更新 更多