Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将MS Access中的日期转换为SQL Server日期_Sql_Sql Server_Ms Access - Fatal编程技术网

将MS Access中的日期转换为SQL Server日期

将MS Access中的日期转换为SQL Server日期,sql,sql-server,ms-access,Sql,Sql Server,Ms Access,我已将Access中的查询复制、粘贴并转换为SQL Server,但似乎不知道如何将访问日期转换为SQL Server友好格式 写申请书的人走了,所以我只能靠自己了。以下是几个例子: SetupDate Between '120701' And '151299' SetupDate Between '001000' And '151299' 如果要在sql server中使用该格式,则需要yyyymmdd格式的日期。因此: SetupDate Between '120701' And '1

我已将Access中的查询复制、粘贴并转换为SQL Server,但似乎不知道如何将访问日期转换为SQL Server友好格式

写申请书的人走了,所以我只能靠自己了。以下是几个例子:

 SetupDate Between '120701' And '151299'
 SetupDate Between '001000' And '151299'

如果要在sql server中使用该格式,则需要yyyymmdd格式的日期。因此:

SetupDate Between '120701' And '151299'
变成这样:

SetupDate Between '20120701' And '20151299'
但“20151299”不是有效日期。所以也许应该是这样:

    SetupDate Between '20010701' And '19991215'

在这种情况下,您可能不会得到任何记录。

如果我的猜测是正确的,
SetupDate
包含6位日期,然后如果可能,创建一个临时列
SetupDate2 AS DATE
然后更新:

update myTable
set SetupDate2 = CONVERT(DATE, SUBSTRING(SetupDate, 1, 2) + '-' + SUBSTRING(SetupDate, 3, 2) + '-' + SUBSTRING(SetupDate, 5, 2))
然后放下
SetupDate
并将
SetupDate2
重命名为
SetupDate

以下是对您的样本的测试:

SetupDate BETWEEN
        CONVERT(DATE, SUBSTRING('120701', 1, 2) + '-' + SUBSTRING('120701', 3, 2) + '-' + SUBSTRING('120701', 5, 2))
        AND CONVERT(DATE, SUBSTRING('151299', 1, 2) + '-' + SUBSTRING('151299', 3, 2) + '-' + SUBSTRING('151299', 5, 2))
SetupDate BETWEEN
        CONVERT(DATE, SUBSTRING('001000', 1, 2) + '-' + SUBSTRING('001000', 3, 2) + '-' + SUBSTRING('001000', 5, 2))
        AND CONVERT(DATE, SUBSTRING('151299', 1, 2) + '-' + SUBSTRING('151299', 3, 2) + '-' + SUBSTRING('151299', 5, 2))

我对access不是很熟悉,但这些日期是怎样的?这是
DDMMYY
?“从Access进入SQL”-这是什么意思?Access中也存在SQL。您是在Access中运行与SQL Server链接的表的查询,还是在Access中运行传递查询,还是在SQL Server中运行(一次性)查询?我应该指定。以下是格式:2010-06-11什么格式?
SetupDate
是否为NVARCHAR(10)?还是约会?太好了!如果你按照我的指示去做,你会得到想要的结果。