在MS Access查询中将13位数字的字符串转换为日期

时间:2018-08-23 14:02:55

标签: date ms-access sql-update

我已经收到一些数据的链接,文本框中的日期以13位数字的形式存储在SHORT TEXT字段中。我想将这些显示为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") ;

谢谢。

2 个答案:

答案 0 :(得分: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仅处理整秒,因此删除了字符串的毫秒部分。

答案 1 :(得分:0)

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

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);