无法在 Apache OpenOffice Calc 中使用 datediff 函数

无法在 Apache OpenOffice Calc 中使用 datediff 函数

我无法使用=DATEDIFF('dd', '2007-08-01', '2007-09-01')Apache OpenOffice Calc 中的命令获得结果。

即使使用两列日期并使用公式=DATEDIFF('dd','A2','B2'),我也无法找到日期之间的差异。

我怎样才能解决这个问题?

答案1

DATEDIFF 似乎是 OpenOffice Base/SQL 函数,而不是 Calc 函数。它可以在 Calc 中用作 Basic 宏自定义函数。

答案2

上面 NANANG 的“天数”计算不正确。以下是更正

Microsoft Excel 使用 Apache 没有的 DATEDIFF 函数 =DATEDIFF(A4;TODAY();"y")&" 年、"&DATEDIFF(A4;TODAY();"ym")&" 月、"&DATEDIFF(A4;TODAY();"md")&" 天"

Apache Office 这样做,“天”以 30.42 天/月计算 365/12=30.42,然后将其四舍五入到小数点后 1 位。

=YEARS(A4;NOW();0)&" 年, "&((MONTHS(A4;NOW();0))-(YEARS(A4;NOW();0)*12))&" 月, "&(ROUND(MOD(MOD(ROUND((DAYS(NOW();$A$4)));365);30.42);1)&" 天")

A4 单元格包含开始日期

答案3

没有可用的名为 DATEDIFF 的函数OpenOffice Calc 日期和时间函数

相反,你应该使用 Calc 特定的函数,例如DAYS函数计算两个日期之间的天数:

=DAYS("2007-08-01", "2007-09-01")

编辑:关于 DATEDIFF:这是核心 SQL:1999 标准的一部分(请参阅SQL Wikibook 中日期/时间 SQL 函数概述),因此您可以在大多数 SQL 数据库 (OpenOffice Base、MySQL、PostgreSQL 等) 中使用它。但您不能在 Calc 中原生使用 SQL 函数。

答案4

=YEARS(C6;$C$3;0)&" 年, "&((MONTHS(C6;$C$3;0))-(YEARS(C6;$C$3;0)*12))&" 月, "&(ROUNDDOWN((DAYS($C$3;C6))-(YEARS(C6;$C$3;0)*365)-(((MONTHS(C6;$C$3;0))-(YEARS(C6;$C$3;0)*12))*30);0)&" 日")

注意:$C$3 可以用 =Now() 替换

相关内容