4

我正在尝试在 oracle 数据库中插入一行,当我尝试使用日期时,我的标题中有错误。我的日期是DD/MM/YYYY HH:MM:SS(示例25/01/2013 12:07:19

编辑以获得更好的解释:我有一个 android 应用程序,想通过 php 在 oracle 数据库中插入一行。
在 PHP 中我有:

$sqlString = sprintf("INSERT INTO GUASTI (%s, %s, %s, %s, %s, %s) 
                      VALUES ('%s', '%s', '%s', '%s', '%s', '%s')"
                      ,'guasto','tipo','data', 'localita', 'indirizzo_id', 'utente_id',
                       $array['guasto'], $array['tipo'], $array['data'], $array['localita'], $idUtenti, $idIndirizzo);

$array['data']在哪里25/01/2013 12:07:19

ps 我知道那里存在安全问题,但目前还不是问题。

4

3 回答 3

6

MM是一个月。使用MI几分钟。

你有

HH:MM:SS

每次分钟大于 12 时都会触发错误,因为您告诉 Oracle 将它们解释为月份。

您还使用没有 am/pm 的 HH(在您刚刚使用的示例中12)。如果您使用 24 格式,请使用HH24

DD/MM/YYYY HH24:MI:SS

或者如果你想要 12 小时格式

DD/MM/YYYY HH:MI:SSAM

进而

02/01/2013 07:42:00am

编辑

您正在使用默认格式插入日期,即 MM/DD/YYYY(美国标准):25 不是有效月份。您可以使用该TO_DATE功能

'TO_DATE(' . $array['data'] . ', DD/MM/YYYY HH24:MI:SS)'
于 2013-01-03T11:22:32.353 回答
4

在插入日期时使用 TO_DATE('20/08/2012 09:00:00','DD/MM/YYYY HH24:MI:SS') 以获取更多详细信息,请参阅链接Oracle 错误

于 2013-01-03T11:23:48.210 回答
0

只是为了了解更多信息:

定义了以下模式字母(从“A”到“Z”以及从“a”到“z”的所有其他字符都被保留):

字母日期或时间组件演示示例

G   Era designator  Text    AD
y   Year    Year    1996; 96
Y   Week year   Year    2009; 09
M   Month in year (context sensitive)   Month   July; Jul; 07
L   Month in year (standalone form) Month   July; Jul; 07
w   Week in year    Number  27
W   Week in month   Number  2
D   Day in year Number  189
d   Day in month    Number  10
F   Day of week in month    Number  2
E   Day name in week    Text    Tuesday; Tue
u   Day number of week (1 = Monday, ..., 7 = Sunday)    Number  1
a   Am/pm marker    Text    PM
H   Hour in day (0-23)  Number  0
k   Hour in day (1-24)  Number  24
K   Hour in am/pm (0-11)    Number  0
h   Hour in am/pm (1-12)    Number  12
m   Minute in hour  Number  30
s   Second in minute    Number  55
S   Millisecond Number  978
z   Time zone   General time zone   Pacific Standard Time; PST; GMT-08:00
Z   Time zone   RFC 822 time zone   -0800
X   Time zone   ISO 8601 time zone  -08; -0800; -08:00
于 2017-01-24T09:57:20.480 回答