Как обновить строку, используя только дату без времени в oracle?

Мой запрос:

UPDATE SHIPMENT 
SET   PRODCODE='LAN', 
      SHIPQTY='39.54',
      REMARKS='MR BOPL',
      MISEQ='-1',
      SITEID='MR',
      SSEMPNO='31111110',
      S_GAUGE='412.54', 
      E_GAUGE='389.50',
      DENSITY='800',
      TEMPERATURE='40.30',
      TEMPATEND='40.30',
      SEDATE=TO_DATE('10-Jul-2018 12:00 AM','dd-Mon-yyyy HH:MI AM'), 
      WEIGHT_S='705.12',
      WEIGHT_E='665.58',
      SEEMPNO='31111110',
      TANKNO='1001' 
WHERE KEYSEQ='60719' 
  AND SSDATE=TO_DATE('09-Jul-2018 12:00 AM','dd-Mon-yyyy HH:MI AM');

Есть 2 строки с одинаковой датой с разным временем, но я хочу обновить обе строки, используя только '09-Jul-2018'там, где это условие. Является ли это возможным?

sql,oracle,

0

Ответов: 2


1 принят

Если я хорошо понимаю, вам нужно:

AND trunc(SSDATE) = TO_DATE('09-Jul-2018', 'dd-Mon-yyyy');

или лучше

AND trunc(SSDATE) = date '2018-07-09'

1

Использование:

WHERE KEYSEQ='60719' 
  AND SSDATE >= TO_DATE('09-Jul-2018','dd-Mon-yyyy') 
  AND SSDATE < TO_DATE('09-Jul-2018','dd-Mon-yyyy') + 1;

thiw обновит все строки с датой 09-Jul-2018иKEYSEQ='60719'

SQL, Oracle,
Похожие вопросы