STODT( ) 函数

将序列日期时间,即以整数形式表示的日期时间和 24 小时的小数部分转换为日期时间值。英文“Serial to Datetime”的缩写。

语法

STODT(序列日期时间 <,开始日期>)

参数

名称 类型 描述
序列日期时间

数值

要转换的域、表达式或字面量值。

需要用小数点分隔日期部分和时间部分的序列日期时间值。例如,42003.75000

开始日期

可选

日期时间

从中计算序列日期的开始日期。如果省略此参数,则使用默认开始日期 1900 年 1 月 1 日。

输出

日期时间。日期时间值使用当前 Analytics 日期和时间显示格式输出。

示例

基本示例

未经调整的开始日期

返回 `20141231t060000`,它显示为 31 Dec 2014 06:00:00 AM(假定当前 Analytics 日期和时间显示格式为 DD MMM YYYY 和 hh:mm:ss PM):

STODT(42003.25000)

返回 `20141231t191530`,它显示为 31 Dec 2014 07:15:30 PM(假定当前 Analytics 日期和时间显示格式为 DD MMM YYYY 和 hh:mm:ss PM):

STODT(42003.802431)

经过调整的开始日期

返回 `20181231t120000`,它显示为 31 Dec 2018 12:00:00 PM(假定当前 Analytics 日期和时间显示格式为 DD MMM YYYY 和 hh:mm:ss PM):

STODT(42003.50000, `19040101`)

将域作为输入

返回 Receipt_datetime 域中每个序列日期时间值的等效日期时间:

STODT(Receipt_datetime)

高级示例

为 1900-01-01 之前的开始日期调整

使用日期算术将开始日期调整为早于 Analytics 最小日期 1900 年 1 月 1 日的值:

  1. 使用默认开始日期转换序列日期时间。
  2. 减去实际开始日期落入的早于 1900-01-01 的天数。

要使用 1899-01-01 作为开始日期(其值为`20131231t180000`):

STODT(42003.75000) - 365

备注

工作原理

STODT( ) 函数使您可以将序列日期时间转换为常规日期时间。Analytics 序列日期时间表示自 1900 年 1 月 1 日以来已经逝去的天数,而小数点后面的部分表示 24 小时的小数部分,24 小时等于 1。

序列日期时间

常规日期时间等效值

1.25

1900 年 1 月 2 日 06:00:00 AM

365.75000

1900 年 12 月 31 日 06:00:00 PM

42003.79167

2014 年 12 月 31 日 07:00:00 PM

42003.802431

2014 年 12 月 31 日 07:15:30 PM

42003.00000

2014 年 12 月 31 日 12:00:00 AM

42003.50000

2014 年 12 月 31 日 12:00:00 PM

0.0

无效

有关序列日期时间的详细信息,请参见序列日期时间

Analytics 序列日期与 Excel 序列日期之比较

Analytics 序列日期类似于 Microsoft Excel 序列日期。您应该知道一个关键相似点和一个关键不同点。这两点之间没有关系。

相似点

Analytics 和 Excel 都将 1900 年视为闰年,有 366 天。尽管 1900 实际上不是闰年,但 Excel 将其视为闰年,以便保持与 Lotus 1-2-3 的兼容性。

不同点

Analytics 序列日期与 Excel 序列日期相差一天。在 Excel 中,1900 年 1 月 1 日 的序列日期为“1”。In Analytics 中,1900 年 1 月 1 日不算在内,1900 年 1 月 2 日的序列日期为“1”。

开始日期

某些源数据文件可能使用除 1900 年 1 月 1 日以外的开始日期。开始日期使您可以匹配源数据文件中的开始日期。开始日期是从其计算序列日期时间的日期。

源数据文件中的开始日期 指定: 详情
1900 年 1 月 1 日 STODT(日期时间域) 您无需指定开始日期,因为 1900 年 1 月 1 日是默认的开始日期。
1901 年 1 月 1 日 STODT(日期时间域, `19010101`) 您指定开始日期 `19010101` 以匹配在源数据文件中使用的开始日期 1901 年 1 月 1 日。
1899 年 1 月 1 日 STODT(日期时间域) - 365 您不能指定早于 1900 年 1 月 1 日的开始日期。如果源数据文件使用早于 1900 年 1 月 1 日的开始日期,您可以创建一个日期时间表达式,以便从 STODT( ) 函数的输出结果中减去适当的天数。

其他日期时间转换函数

序列到日期时间转换

函数 描述

STOD( )

将序列日期,即以整数形式表示的日期转换为日期值。英文“Serial to Date”的缩写。

STOT( )

将序列时间,即以 24 小时的小数部分形式表示的时间(其中,24 小时等于 1)转换为时间值。英文“Serial to Time”的缩写。

字符或数值到日期时间转换

函数 描述

CTOD( )

将字符或数值日期值转换为日期。还可以从字符或数值日期时间值中提取日期并将其作为日期返回。英文“Character to Date”的缩写。

CTODT( )

将字符或数值日期时间值转换为日期时间。英文“Character to Datetime”的缩写。

CTOT( )

将字符或数值时间值转换为时间。还可以从字符或数值日期时间值中提取时间并将其作为时间返回。英文“Character to Time”的缩写。

日期时间到字符转换

函数 描述

DATE( )

从指定的日期或日期时间中提取日期并将其以字符串形式返回。还可以返回当前操作系统日期。

DATETIME( )

将日期时间转换为字符串。还可以返回当前操作系统日期时间。

TIME( )

从指定的时间或日期时间中提取时间并将其以字符串形式返回。还可以返回当前操作系统时间。

ACL 脚本指南 14.1