尝试为 Table 字段构建表达式以对文本日期进行排序,其中一些缺少元素
Trying to build Expression for Table field to sort text dates, some with missing elements
您好,我是新手,有一个问题我已经尝试解决了数周。我有一个从 excel 导入的 table,日期是文本格式的(因为日期可以追溯到 1700 年代)大多数都是 "mmmyyyy" 格式,所以添加“1”相对容易日期,转换为日期格式,并按正确的日期顺序排序。我遇到的问题是 table 中的一些日期只是 "yyyy",而有些是空的。我找不到可以在同一表达式中将最后两个转换为例如 1 Jan yyyy 和 1 Jan 1000 的表达式。这是可能的,还是我需要在两个查询中执行此操作?抱歉,如果这个问题非常基础 - 我无法在任何地方找到答案。
TIA
您可以这样做:
Public Function ConvertDate(Byval Expression As Variant) As Date
Dim Result As Date
If IsNull(Expression) Then
Result = DateSerial(1000, 1, 1)
ElseIf Len(Expression) = 4 Then
Result = DateSerial(Expression, 1, 1)
Else
Result = DateValue(Right(Expression, 4) & "/" & Left(Expression, 3) & "/1")
End If
ConvertDate = Result
End Function
您好,我是新手,有一个问题我已经尝试解决了数周。我有一个从 excel 导入的 table,日期是文本格式的(因为日期可以追溯到 1700 年代)大多数都是 "mmmyyyy" 格式,所以添加“1”相对容易日期,转换为日期格式,并按正确的日期顺序排序。我遇到的问题是 table 中的一些日期只是 "yyyy",而有些是空的。我找不到可以在同一表达式中将最后两个转换为例如 1 Jan yyyy 和 1 Jan 1000 的表达式。这是可能的,还是我需要在两个查询中执行此操作?抱歉,如果这个问题非常基础 - 我无法在任何地方找到答案。 TIA
您可以这样做:
Public Function ConvertDate(Byval Expression As Variant) As Date
Dim Result As Date
If IsNull(Expression) Then
Result = DateSerial(1000, 1, 1)
ElseIf Len(Expression) = 4 Then
Result = DateSerial(Expression, 1, 1)
Else
Result = DateValue(Right(Expression, 4) & "/" & Left(Expression, 3) & "/1")
End If
ConvertDate = Result
End Function