我正在尝试在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
P.S。我知道那里存在安全问题,但现在不是问题。
答案 0 :(得分: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)'
答案 1 :(得分:4)
使用TO_DATE('20 / 08/2012 09:00:00','DD / MM / YYYY HH24:MI:SS')插入日期以获取更多详情,请参阅链接Oracle Error
答案 2 :(得分: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