Yii2 Oracle 日期列
Posted
技术标签:
【中文标题】Yii2 Oracle 日期列【英文标题】:Yii2 Oracle date column 【发布时间】:2018-01-18 10:43:52 【问题描述】:我正在尝试使用 GridView 小部件在 Yii2 框架中显示包含日期列的表格。
oracle 表中很少有特定列包含日期和时间(其余的只有日期),但是默认情况下提取数据时我只得到 DD-MM-YYYY,即使在 SQL Developer 中运行查询时我也得到相同结果,除非我专门用 to_char() 函数运行它。
从表中选择 to_char(column, 'DD.MM.YYYY HH24:MI:SS');
将显示完整数据,我对 Oracle 数据库还很陌生,所以我不确定如何在 Yii2 中正确显示。
如果我使用 Yii2 格式化程序,它会在以 DD-MM-YYYY 格式检索日期后格式化日期,这将导致时间为 00:00:00 ,而不是实际时间。
有什么建议吗?
谢谢!
【问题讨论】:
【参考方案1】:在 SQL Developer 中运行查询时,我得到相同的结果,除非 我专门用 to_char() 函数运行它。
您应该在 SQL Developer 中修改日期格式,以便它也显示时间组件;默认情况下,它显然只返回日期。它(对于 17.4 版)在工具 - 首选项 - 数据库 - NLS - 日期格式中。
或者,正如您所注意到的,使用带有适当格式掩码的 TO_CHAR。
我不知道 Yii2 也不知道如何设置日期格式,抱歉。
【讨论】:
【参考方案2】:我解决了这样的问题:
public static function getRightDate($period)
$day = substr($period,0,2);
$mon = substr($period,3,2);
$year = '20'.substr($period,6,2);
return $day.'.'.$mon.'.'.$year;
【讨论】:
这是oracle函数吗以上是关于Yii2 Oracle 日期列的主要内容,如果未能解决你的问题,请参考以下文章
如果年龄列基于oracle中的出生日期列为空,如何更新年龄列?