Oracle SQL и strtotime - обновляющая запись
Когда я обновляю запись, я иногда получаю вставку 1969 года в свою область. Год, обновленный с 2016 по 1969 год?? Есть ли проблема STRTOTIME с датой? Я не уверен, в чем заключается проблема...
-
Я выбираю дату из таблицы
SELECT to_char(a.MOV_DATE, 'DD-Mon-YYYY') as MOV_DATE FROM SCHOOL.MOV a
-
Я вставляю дату во вход jQuery Datepicker...
<input type="text" name="movdat" id="datepicker" class="boxit" required readonly="readonly" style="cursor:pointer; background-color: #FFFFFF; width:140px;" value='<?php echo $objResult["MOV_DATE"]; ?>'>
Указатель даты:
<script>
$(function() {
$("#datepicker").datepicker({
dateFormat:'dd-M-yy',
maxDate: 0
}).val();
});
</script>
Таким образом, формат из Oracle - DD-Mon-ГГГГ, а из датапикер - это dd-M-yy
Дд (2-значный день)
М (короткий месяц)
Гг (4-значный год)
Таким образом, они выглядят так, как будто они совпадают.
-
PHP - хранить дату из datepicker и извлекать год
$f4 = $_POST['movdat']; // new date $f5 = date('Y', strtotime($f4)); // year
-
Обновить запись
$sql = oci_parse($conn,"UPDATE SCHOOL.MOV SET MOV_DATE=:mdat, YEAR=:ye WHERE id='265'"); oci_bind_by_name($sql, ':mdat', $f4); oci_bind_by_name($sql, ':ye', $f5); $objExec = oci_execute($sql, OCI_DEFAULT); if ($objExec) { oci_commit($conn); }
2
1 answers
Попробуйте использовать to_date
функция, чтобы явно указать Oracle, в каком формате ожидать входную строку и преобразовать ее в объект date
для внутренней обработки:
UPDATE SCHOOL.MOV SET
MOV_DATE = to_date(:mdat, 'DD-Mon-YYYY'),
YEAR = :ye
WHERE
id = '265'
1
Author: timclutton, 2018-09-06 11:23:15