Oracle数据库日期列在php中不显示完整日期
我有日期列,日期值设置为格式:DD-MON-RR HH24:MI:SS 当我从sqldeveloper执行sql脚本时,我可以看到如下日期 2015年3月16日20:40:47。但是当我想用php获得这个值时:Oracle数据库日期列在php中不显示完整日期,php,oracle,date,oracle11g,Php,Oracle,Date,Oracle11g,我有日期列,日期值设置为格式:DD-MON-RR HH24:MI:SS 当我从sqldeveloper执行sql脚本时,我可以看到如下日期 2015年3月16日20:40:47。但是当我想用php获得这个值时: $currentDATE=$row['DATE']; echo gettype($row['DATE']); echo $currentDATE; 我认为结果是 2015年3月16日 如何在php页面中查看完整的日期信息?这将取决于Oracle客户端上的nls\u date\u格式设置
$currentDATE=$row['DATE'];
echo gettype($row['DATE']);
echo $currentDATE;
我认为结果是
2015年3月16日
如何在php页面中查看完整的日期信息?这将取决于Oracle客户端上的nls\u date\u格式设置。这也是一个很好的演示,说明了为什么SQL脚本不应该依赖隐式转换 您有两个选择:
输出到_char(,'')
alter session set-nls\u-date\u-format='',更改默认的nls\u-date\u格式设置代码>刚刚连接到SQL*Plus之后
第一种选择是迄今为止最好的选择;这意味着任何必须运行该脚本的人都将看到相同的结果,而不必对nls_date_格式设置进行修改。这将是由于Oracle客户端上的nls_date_格式设置造成的。这也是一个很好的演示,说明了为什么SQL脚本不应该依赖隐式转换 您有两个选择:
输出到_char(,'')
alter session set-nls\u-date\u-format='',更改默认的nls\u-date\u格式设置代码>刚刚连接到SQL*Plus之后
日期
值,请使用To_CHAR和适当的格式掩码将其转换为字符串日期
值,请使用To_CHAR和适当的格式掩码将其转换为字符串当我将php中的查询更改为SELECT to_date(B.issueDate,'DD-MON-RR HH24:MI:SS')时,B借用了我的查询;日期显示为空。您要使用
到字符(b.issueDate,'DD-MON-RR HH24:MI:SS')
而不是到日期()
。是的,抱歉;我最初的答案是日期而不是字符。脑子出毛病了!当您直接在SQL*Plus中运行查询时(即不通过PHP,select语句显示了什么?如果您执行:select to_char(B.issueDate,'DD-MON-RR HH24:MI:SS'),该怎么办issuedate FROM borroedby
?注意:当您将日期数据类型中的内容转换为字符串时,使用to_char
非常重要,这样您就可以以相关格式查看它。如果您对已经是日期的内容执行to_DATE,则您会强制Oracle执行隐式转换(两次),这可能会导致信息丢失on将丢失,因为隐式转换取决于nls_日期_格式设置。您是否尝试运行select to_char(B.issueDate,'DD-MON-RR HH24:MI:SS')issuedate来自PHP中的BorroedBy
?我怀疑问题在于您的PHP查询正在查找一个名为issuedate
的列,该列由于周围的to_char
而不再被调用。因此,当我将PHP中的查询更改为SELECT to_date>时,您必须将该列重新命名为issuedate
(B.issueDate,'DD-MON-RR HH24:MI:SS')来自B;date显示为null您想使用to_CHAR(B.issueDate,'DD-MON-RR HH24:MI:SS')
而不是to_date()
。是的,抱歉;我的原始答案必须是日期而不是to CHAR。脑筋急转弯!当您直接在SQL*Plus中运行查询时(也就是说,不是通过PHP,select语句显示了什么?如果执行:select to_char(B.issueDate,'DD-MON-RR HH24:MI:SS'),该怎么办issuedate FROM borroedby
?注意:当您将日期数据类型中的内容转换为字符串时,使用to_char
非常重要,这样您就可以以相关格式查看它。如果您对已经是日期的内容执行to_DATE,则您会强制Oracle执行隐式转换(两次),这可能会导致信息丢失on将丢失,因为隐式转换取决于nls_日期_格式设置。您是否尝试运行select to_char(B.issueDate,'DD-MON-RR HH24:MI:SS')在PHP中,issuedate来自BorroedBy
?我怀疑问题在于您的PHP查询正在查找名为issuedate
的列,该列由于周围的to_char
而不再被调用。因此,您必须将该列重新命名为issuedate
。