Oracle SQL 和 strtotime - 更新记录
Oracle SQL and strtotime - updating record
当我更新记录时,我偶尔会在我的字段中插入 1969 年。年份从 2016 年更新到 1969 年??日期有 STRTOTIME 问题吗?我不确定问题出在哪里...
我正在从table
中选择日期
SELECT to_char(a.MOV_DATE, 'DD-Mon-YYYY') as MOV_DATE FROM SCHOOL.MOV a
我正在将日期插入 JQuery 日期选择器输入...
<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-YYYY,来自日期选择器的格式是 dd-M-yy
dd(2 位数日)
M(月-短)
yy(4 位数年份)
所以他们看起来很相配。
PHP - 从日期选择器中存储日期并提取年份
$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);
}
尝试使用 to_date
函数显式告诉 Oracle 预期输入字符串的格式并将其转换为 date
对象以供内部处理:
UPDATE SCHOOL.MOV SET
MOV_DATE = to_date(:mdat, 'DD-Mon-YYYY'),
YEAR = :ye
WHERE
id = '265'
当我更新记录时,我偶尔会在我的字段中插入 1969 年。年份从 2016 年更新到 1969 年??日期有 STRTOTIME 问题吗?我不确定问题出在哪里...
我正在从table
中选择日期SELECT to_char(a.MOV_DATE, 'DD-Mon-YYYY') as MOV_DATE FROM SCHOOL.MOV a
我正在将日期插入 JQuery 日期选择器输入...
<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-YYYY,来自日期选择器的格式是 dd-M-yy
dd(2 位数日)
M(月-短)
yy(4 位数年份)
所以他们看起来很相配。
PHP - 从日期选择器中存储日期并提取年份
$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); }
尝试使用 to_date
函数显式告诉 Oracle 预期输入字符串的格式并将其转换为 date
对象以供内部处理:
UPDATE SCHOOL.MOV SET
MOV_DATE = to_date(:mdat, 'DD-Mon-YYYY'),
YEAR = :ye
WHERE
id = '265'