gpt4 book ai didi

sql-server-2008 - 将日期时间字段从 csv/txt 导入 Access

转载 作者:行者123 更新时间:2023-12-01 02:19:04 30 4
gpt4 key购买 nike

我将 SQL Server 2008 查询的输出保存到一个文本文件中,我正在尝试将其链接到 Access 数据库(Access 2007-2010)。

文本文件包含 SQL Server 2008 datetime 中的两个日期列格式,像这样:

EFFECTIVE START DATE:
---------------------
2013-07-01 00:00:00.000

EFFECTIVE END DATE:
-------------------
2014-06-30 00:00:00.000

在导入向导中,我单击高级并更改以下内容:
  • 代码页 = 西欧(窗口)而不是 Unicode (UTF-8)

  • 对于 2 datetime列:
  • 数据类型 = 日期/时间
  • 日期顺序 = YMT
  • 日期分隔符 = -
  • 日期中的前导零 = 打勾

  • 虽然仍在导入向导中,但数据看起来不错,但是一旦导入完成并在 Access 中打开表,我就会看到 #Num!在两个日期列中。

    我尝试了导入向导中的设置组合(将代码页保留为 Unicode,不更改日期顺序,不勾选日期中的前导零等)但最后我不得不将日期作为文本导入,这会停止我现在不做任何计算。

    非常感谢您的帮助

    最佳答案

    in the end I had to import the dates as text, which stops me from doing any calculations now.



    没错,您不能将文本字段作为真实日期进行操作,但您可以运行生成表查询以将它们转换为真实日期 Date/Time像这样的值(value)观:

    SELECT 
    ID,
    CDate(Left([Field1],InStr([Field1],".")-1)) AS Date1,
    CDate(Left([Field2],InStr([Field1],".")-1)) AS Date2
    INTO SqlDataWithRealDates
    FROM SqlData;

    原始导入的问题在于 Access Date/Time值不支持小数秒,因此如果它们包含 00:00:00.000,Access 将永远不会识别这些值。 .上面的查询删除了结尾的 .000在将字符串传递给 CDate() 之前.

    Johnny Bones 在下面的评论中建议的另一种选择是更改 SQL Server 查询以使用类似 CONVERT(VARCHAR(10), [Field1], 101) AS Date1 的内容。从最终导入的字符串中删除时间组件。

    关于sql-server-2008 - 将日期时间字段从 csv/txt 导入 Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22013179/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com