2017-02-10 88 views
-1

我想将当前日期/时间作为Unix时间戳存储在数据库中,并且正在构建SQL查询。E2010不兼容的类型:'string'和'Int64'

IntToStr(DateTimeToUnix(Now())) 

[dcc32错误] fMainForm.pas(186):E2010不兼容的类型: '字符串' 和 'Int64的'

如何获得当前的日期/时间为Unix时间戳?

回答

1

此程序

{$APPTYPE CONSOLE} 

uses 
    System.SysUtils, 
    System.DateUtils; 

begin 
    Writeln(IntToStr(DateTimeToUnix(Now()))); 
    Readln; 
end. 

成功运行,并输出当前的Unix时间。因此,我认为您提供的代码不会产生您报告的错误。这个错误是由一些其他代码不是问题的一部分引起的。

大概你正在接受这个表达式并试图在整数上下文中使用它。这将解释错误。如果你需要的值为整数,而不是字符串,然后更改

IntToStr(DateTimeToUnix(Now())) 

DateTimeToUnix(Now()) 

这就是为什么当与MCVE提出这样的问题是更好的一个很好的例子。

+0

D'oh !!德尔福多年以来。 – Mawg

+0

请注意'DateTimeToUnix()'返回一个'Int64',而不是'Integer'。 –