我无法使用=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() 替换