Запрос на добавление летнего времени в UTC создает ошибку преобразования типа в доступе

У меня есть таблица, которую я использую в качестве источника для запроса на добавление, который вызывает запрос таблицы, который вызывает запрос на объединение, чтобы эффективно настроить преобладающее восточное время, чтобы перейти вперед и отступить при преобразовании в utc. в таблице всего три поля, но я продолжаю получать «доступ не импортирован .... из-за преобразования типа». Пожалуйста, помогите мне! заранее спасибо

ниже доступ sql:

{добавить запрос}

INSERT INTO somePrice ( price )
SELECT DTQuery.Price
FROM DTQuery
WHERE (((DTQuery.EPT)<>[2ndsunday]));

{DTQuery}

SELECT 
      TransposeQuery.Field3 AS [Zone]
    , DateSerial(Left([field1],4),Left(Right([field1],4),2),Right([field1],2))+[TransposeQuery]![Hour]/24 AS EPT, Val([Field8]) AS Price
    , DateValue(DateSerial(Year([EPT]),3,14))-(Weekday(DateValue(DateSerial(Year([EPT]),3,14)),1)-1)+3/24 AS 2ndSunday
    , DateValue(DateSerial(Year([EPT]),11,7))-(Weekday(DateValue(DateSerial(Year([EPT]),11,7)),1)-1)+3/24 AS 1stSunday
FROM TransposeQuery
ORDER BY 
      TransposeQuery.Field3
    , DateSerial(Left([field1],4),Left(Right([field1],4),2),Right([field1],2))+[TransposeQuery]![Hour]/24, Val([Field8]);

person Wild n' Young    schedule 16.12.2011    source источник


Ответы (1)


Сначала немного общего: если вы хотите конвертировать между часовыми поясами, что включает в себя добавление или вычитание количества часов, которые вы можете использовать для функции DateAdd.

DateAdd("h", -2, [SourceDateTime])

Это просто занимает два часа от поля SourceDateTime.

Также вместо использования комбинации Left(Right( вы можете использовать Mid(string, start, length)

Mid("1234567890", 2, 4)

Возвращает 2345, но если вы имеете дело с датами, просто используйте DatePart

DatePart("h", "17/12/2011 08:10")

Возвращает 8.


Что касается ошибки преобразования типа, трудно сказать, поскольку вы не предоставили нам типы полей в целевой таблице.

Если вы запустите запрос на добавление без первой строки, это исключит целевую таблицу. Если это все еще не удается, то это может быть в предложении where, поэтому переместите поля в набор результатов и убедитесь, что они одного типа. Если он по-прежнему не работает, он должен быть в исходном запросе, поэтому проверьте, что DTQuery открывается без проблем.

person Stephen Turner    schedule 17.12.2011