【问题标题】:Trouble with reformatting Access date SQL重新格式化访问日期 SQL 的问题
【发布时间】:2018-06-29 16:00:00
【问题描述】:

我有一列 [Activity Period],它是 6 位数字组成的年月日期(例如 201601)。我的查询:

UPDATE [Consolidated]
Set [Activity Period] = Left([Activity Period],4) & "/" & Right([Activity Period],2)

它适用于在月份和年份之间插入斜线。但是,该字段仍为文本格式。

当我尝试在字段设置下手动更改它时,它会在当天添加一个“1”,因此 201601 变为 2016/01/01 等。我想将其格式化为月份和年份。

【问题讨论】:

  • 我想将其格式化为月和年 ... afaik - 在任何只有月/年数据点的关系数据库中都没有日期或日期时间格式。
  • 你知道为什么会这样吗?我觉得这很奇怪,因为 Excel 具有此功能,并且两者可以直接相互交谈。我显然承认你的经历,因为我对此很陌生,看起来很奇怪。
  • 日期始终是日期。您可以根据需要对其进行格式化,例如MM/YYYY 但 a) 源日期仍然是日期 b) 格式化输出是字符串(文本)。
  • 在 Excel 中再次检查。月/年是 自定义 格式,而不是 日期 格式。事实上,只要您输入“06/2018”,Excel 就会自动添加一天 = 1 作为单元格值:“06/01/2018”,尽管它显示为“Jun-18”。 (美国日第一格式)。
  • 那么请原谅我的无知,但是显示月份和年份的最佳方式是什么?我应该将其保留为文本吗?

标签: sql ms-access


【解决方案1】:

将当前字段重命名为 [Old Activity Period] 并创建数据类型为 Date 的新字段。应用格式为 yyyy/mm。

然后运行这个查询:

UPDATE [Consolidated]
Set [Activity Period] = CDate(Left([Old Activity Period],4) & "/" & Right([Old Activity Period],2))

【讨论】:

  • dateserial(left([Old Activity_Period], 4), right([Old_Activity_Period], 2), 1) 也可以工作(在此 UPDATE 语句中或在保留旧列而不添加新列的查询中。
  • 我试图更新当前的,它在语句的前半部分返回了一个缺少的运算符
  • 您不能更新“当前的”,除非先按照说明进行修改。
  • 我按照你告诉我的做了(重命名并重新命名)并运行了查询。它要求我:输入参数值:(旧活动期)
  • 那么“旧活动期”不是重命名字段的名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多