【问题标题】:YYYYMMDD to Date String combined with multiple date criteriaYYYYMMDD 到日期字符串与多个日期条件相结合
【发布时间】:2014-04-10 14:59:59
【问题描述】:

我认为我遇到的问题似乎是两个因素的结合,因此我在标题中结合了。

我在一个表中有两个字段,它们是文本格式的 YYYYMMDD。

我正在尝试创建一个查询,该查询首先将这两列转换为日期格式,如 mm/yy/yyyy(数据稍后将导出到 excel),并在两个字段中设置参数化条件。

例如,我只想查看 efffrom 字段小于输入日期以及 effto 字段大于另一个输入日期的数据。

我尝试过使用 DateValue 和 cdate,但似乎还没有走得太远。我可以正确处理日期部分,但是当我尝试使用第二个条件(不是第一个条件正确)时,我收到“条件表达式中的数据类型不匹配”错误。

我不确定我是否可以提供任何可以帮助我的东西,但我很感激任何解决方案。

【问题讨论】:

  • 您是否考虑过以日期格式存储您的日期?然后处理表单/excel中的任何格式?
  • 简单地说。我构建此流程的原因是自动为客户创建报告。我目前的做法是根据需要吐出文件并发送。这个需要美国日期格式,我希望解决方案不需要任何编辑后导出。
  • 您仍然应该将日期存储为日期,然后如果您想在 SQL 中对其进行格式化,只需使用Format,例如FORMAT([Date], "MM/dd/yyyy") AS FormattedDate
  • 你能扩展一下吗?如何将 YYYYMMDD 存储为日期?我一直在使用具有左、右和中功能的 Datevalue。它将它与我要输入的两个日期条件一起使用会引发错误。

标签: sql date ms-access


【解决方案1】:

让这个 VBA 代码成为您的指南:

Public Function DateFromYYYYMMDD(ymdText)
    If VarType(ymdText) <> vbString Then
        ymdText = CStr(ymdText)
    End If
    If Len(ymdText) <> 8 Then
        Err.Raise 5
    End If
    DateFromYYYYMMDD = CDate(Left(ymdText, 4) + "-" _
        + Mid(ymdText, 5, 2) _
        + "-" + Right(ymdText, 2))
End Function

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    您应该将您的字段从文本转换为日期/时间。为此,您首先需要添加一个新列,将转换后的值添加到其中,然后删除旧列,并重命名新列。为此,我从一张表开始Table1

    然后在文本字段中添加一些值,格式为 yyyyMMdd:

    下一步是添加一个数据类型为Date/Time的新列:

    然后运行以下 SQL 将您的新列更新为相应的日期:

    UPDATE  Table1
    SET     DateFieldCopy = DATESERIAL(LEFT(DateField,4), MID(DateField,5,2), RIGHT(DateField,2));
    

    最后,您可以删除旧列,并重命名新列:

    现在您已经拥有了正确格式的列,您可以使用 format 函数以您想要的任何格式获取数据。以下查询应提供您想要的格式:

    SELECT  ID, DateField, FORMAT([DateField], "MM/dd/yyyy") AS FormattedDate
    FROM    Table1;
    

    【讨论】:

    • 我目前正在使用一个链接到无法更改的源数据库的数据库。因此,我正在对链接表使用查询。我的查询表达式如下。我得到了正确的日期,但它似乎不适用于针对 2 的参数标准。以下是否正确? EFFFROM: CDate(Right([Table.Efffrom],2) & "/" & Mid([Table.Efffrom],5,2) & "/" & Left([Table.Efffrom],4))
    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    相关资源
    最近更新 更多