2013-08-26 5 views
0

У меня есть 2 поля в моей базе данных DB2: DATE и TIME. DATE - строка (8/25/2013), DATE - временная метка (1/1/1970 7:00:00 AM). Я хочу написать sql для замены 1/1/1970 с 8/25/2103. Пожалуйста помоги.В DB2 String заменить

Спасибо.

+0

является то, что 2013 год в году? – Vandesh

ответ

2

Ну, что вам нужно, чтобы бросить вашу строку в дату, используя DATE функцию

DATE(DATE) 

Где вы видите, что это это плохая идея назвать столбцы с существующими именами функций ...

Тогда комбинируя TIMESTAMP, DATE и TIME функцию (опять же на самом деле мутноватый с именами полей, но ...)

TIMESTAMP(DATE(DATE), TIME(TIME)) 

Даст вам метку времени, когда дата часть исходит от поля DATE, а часть времени из поля TIME

См this и that

+0

Почему вы выбрали типы? Что получается? – WarrenT

0

После заброса в формат DATE, добавив разницу между теми, две абсолютные даты должны работать -

UPDATE <table-name> 
SET DATE= DATEADD(day,DATEDIFF(day,'1/1/1970','8/25/2013'),DATE) 
WHERE DATE < '1/2/1970' AND DATE>='1/1/1970' 

Подробнее о DATEADD и DATEDIFF Кроме того, рекомендуется не использовать «ДАТА» в качестве имени столбца, как это зарезервированное [править] имя функции.