我在向表单输入日期时遇到了一个问题,我查看了其他帖子,但他们给我的解决方案对我不起作用:(错误指示我一个无效的月份错误。
我尝试使用TO_DATE('...','dd/mm/yyyy'),但通过这样做引发了另一个错误(actualizaoferta.php):
begin ACTUALIZA_OFERTAS(:codigo, :monto, TO_DATE(:fechI,"DD/MM/YYYY"), TO_DATE(:fechL,"DD/MM/YYYY"), :retorno, :ok); end;');
我试了很多方法来输入日期,但什么都没有。
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE SPANISH
NLS_TERRITORY SPAIN
NLS_CURRENCY €
NLS_ISO_CURRENCY SPAIN
NLS_NUMERIC_CHARACTERS ,.
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD/MM/RR
NLS_DATE_LANGUAGE SPANISH
NLS_SORT SPANISH
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY €
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
<div role="tabpanel" class="tab-pane fade" id="Ofertas">
<div class="row">
<div class="col-xs-12">
<br><br>
<div class="panel panel-info">
<div class="panel-heading text-center"><i class="fa fa-refresh fa-2x"></i><h3>Actualizar datos de ofertas</h3></div>
<div class="table-responsive">
<table class="table table-bordered">
<thead class="">
<tr>
<th class="text-center">Código Producto</th>
<th class="text-center">% Dcto</th>
<th class="text-center">Fecha Inicio</th>
<th class="text-center">Fecha Fin</th>
</tr>
</thead>
<tbody>
<?php
include("conexion.php");
$conn = oci_connect($username, $password, $db);
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$up=1;
$seleccion="select * from ofertas order by codigo_producto asc";
// Se hace la conversión de la consulta con la conexión
$variable = oci_parse($conn,$seleccion);
$estado=@oci_execute($variable);
if(!$estado){
$error = oci_error($variable);
echo $error['message'];
}
//La consulta retorna un arreglo de valores que se debe recorrer con oci_fetch
//Cada valor entre los [] es una columna de la tabla en la base de datos
$contador = 0;
while (($elementop = oci_fetch_array($variable, OCI_BOTH)) != false)
{
echo '<div id="update-product">
<form method="post" action="process/actualizaOferta.php" id="res-update-ofert-'.$up.'">
<tr>
<td>
<input class="form-control" type="text" name="ofer-cod-act" maxlength="30" required="" value="'.$elementop['CODIGO_PRODUCTO'].'">
</td>
<td><input class="form-control" type="text" name="ofer-monto-act" maxlength="30" required="" value="'.$elementop['MONTO'].'"></td>
<td><input class="form-control" type="text-area" name="ofer-fecI-act" required="" value="'.$elementop['FECHA_INICIO'].'"></td>
<td><input class="form-control" type="tel" name="ofer-fecL-act" required="" maxlength="20" value="'.$elementop['FECHA_LIMITE'].'"></td>
<td class="text-center">
<button type="submit" class="btn btn-sm btn-primary button-UPR" value="res-update-ofert-'.$up.'">Actualizar</button>
<div id="res-update-ofert-'.$up.'" style="width: 100%; margin:0px; padding:0px;"></div>
</td>
</tr>
</form>
</div>
';
$up=$up+1;
$contador++;
}
if($contador == 0){
echo '<h3>No hay ofertas registradas.</h3>';
}
oci_free_statement($variable);
oci_close($conn);
?>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<?php
include("conexion.php");
$conn = oci_connect($username, $password, $db);
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$ingreso = oci_parse($conn, 'begin ACTUALIZA_OFERTAS(:codigo, :monto, :fechI, :fechL, :retorno, :ok); end;');
// oci_bind_by_name para pasar los valores rescatados por $_POST[] desde el formulario.
oci_bind_by_name($ingreso, ':codigo', $_POST['ofer-cod-act']);
oci_bind_by_name($ingreso, ':monto', $_POST['ofer-monto-act']);
oci_bind_by_name($ingreso, ':fechI', $_POST['ofer-fecI-act']);
oci_bind_by_name($ingreso, ':fechL', $_POST['ofer-fecL-act']);
oci_bind_by_name($ingreso, ':retorno',$salida,100);
oci_bind_by_name($ingreso, ':ok',$listo,100);
// Con oci_execute se ejecuta la sentencia y retorna falso en caso de error.
$ok = oci_execute($ingreso);
if (!$ok) {
$error = oci_error($ingreso); // oci_error entrega el mensaje de error que proviene de oracle
echo htmlentities($error['message']); // htmlentities da formato html al texto retornado
}
if ($listo=='FALSE')
{
echo 'valor es: '.$salida . 'y: ' . $listo;
else
{
echo 'valor es: '.$salida . 'y: ' . $listo;
}
oci_free_statement($ingreso); // Liberación de memoria utilizada.
oci_close($conn);
?>
程序
CREATE OR REPLACE PROCEDURE ACTUALIZA_OFERTAS(
cod_prod IN OFERTAS.codigo_producto%TYPE,
mont IN OFERTAS.monto%TYPE, --objeto
fec_in IN OFERTAS.fecha_inicio%TYPE, --objeto
fec_lim IN OFERTAS.fecha_limite%TYPE,
MENSAJE OUT VARCHAR2,
VALOR OUT VARCHAR2
)
IS
noExiste EXCEPTION;
BEGIN
LOCK TABLE OFERTAS IN ROW EXCLUSIVE MODE;
UPDATE OFERTAS
SET monto=mont,
fecha_inicio=fec_in,
fecha_limite=fec_lim
WHERE codigo_producto=cod_prod;
IF SQL%NOTFOUND THEN
RAISE noExiste;
END IF;
COMMIT;
MENSAJE:='OFERTA DEL PRODUCTO >' || cod_prod || '< ACTUALIZADO CORRECTAMENTE';
VALOR:='TRUE';
EXCEPTION
WHEN noExiste THEN
MENSAJE:='NO SE HA ENCONTRADO EL PRODUCTO' || cod_prod;
VALOR:= 'FALSE';
ROLLBACK;
WHEN PROGRAM_ERROR THEN
MENSAJE:='DAÑO EN LA BASE DE DATOS O LIBRERIAS CORRUPTAS';
VALOR:= 'FALSE';
ROLLBACK;
WHEN STORAGE_ERROR THEN
MENSAJE:='LA MEMORIA SE TERMINÓ O ESTÁ CORRUPTA';
VALOR:= 'FALSE';
ROLLBACK;
WHEN ROWTYPE_MISMATCH THEN
MENSAJE:='TIPO DE ASIGNACIÓN NO COINCIDE CON EL DE LA VARIABLE';
VALOR:= 'FALSE';
ROLLBACK;
WHEN OTHERS THEN
MENSAJE:='ERROR DESCONOCIDO EN EL PROCEDIMIENTO "ACTUALIZA_OFERTAS"';
VALOR:= 'FALSE';
ROLLBACK;
END;
/
提前致谢:)
截图显示您输入的日期值为“20/04/95”(即dd/mm/yy),但在TO_DATE函数中使用了不同的日期格式掩码:dd/mm/yyyy。试着让他们一样。就我个人而言,我更喜欢4位数的年份。
另外,你不应该用双引号,而应该用单引号。
所以:
to_date(:fechI, 'dd/mm/yy')
问题内容: 经过大量的google’ing和PHP手动阅读之后,我真的很想在日期时间加上X分钟,但似乎一无所获。 我的日期时间格式是: : 要添加的分钟数只是0到59之间的数字 我希望输出与添加分钟的输入格式相同。 有人可以给我一个有效的代码示例,因为我的尝试似乎并没有带我去任何地方? 问题答案: 在ISO 8601标准的持续时间 是在形式的串,其中所述部件用指示的持续时间有多长一个数字值代替。
问题内容: 当我想在mysql表中设置数值+1时,我使用例如: 如何设置日期+一年? 谢谢 问题答案: 您可以使用DATE_ADD:(或将ADDDATE与一起使用)
我的程序使用日期来检查工程师何时访问过机器。唯一的问题是日期并不是最新的。机器显示的日期和时间是机器启动的准确时间。当按钮被点击时就不会了。任何帮助都会有帮助。 代码:
问题内容: 如何使用MySQL在过去2周中使用随机日期更新列? 例如(代码实际上不起作用): 问题答案: 您可以使用以下表达式获得随机整数: 要获得i <= R <j范围内的随机整数R,请使用表达式 。例如,要获得7 <= R <12范围内的随机整数,可以使用以下语句: http://dev.mysql.com/doc/refman/5.1/en/mathematical- functions.h
本文向大家介绍如何在MySQL中更新日期格式?,包括了如何在MySQL中更新日期格式?的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是转换日期格式的查询- 这将产生以下输出-
我有一个Calendarview和一个EditText。我希望以DD/MM/YYYY格式在edittext中输入的日期,并将其设置在CalendarView上。视图应将当前日期气泡更新为设置的日期。 提前道谢!