我有这个PHP脚本,我想保持不变:
$display = array(
'QDATETIME',
'ID',
'NAME',
'CATEGORY',
'APPSVERSION',
'OSVERSION',
);
$sql = sprintf("
select %s from quincytrack
where qdatetime > (now() - interval '2 day') and
qdatetime <= now()",
join(', ', $display));
$sth = $pg->prepare($sql);
$sth->execute($args);
我的问题是QDATETIME打印为 2010-12-18 15:51:37 ,而我需要 2010-12-18 。我知道我可以将 to_char(QDATETIME,'YYYY-MM-DD')称为QDATETIME ,但更愿意找到影响日期输出格式的其他方法......
在CentOS 5.5 Linux / 64位下使用PostgreSQL 8.4.5。
谢谢! 亚历
答案 0 :(得分:3)
只需CAST到数据类型DATE:
SELECT
CAST('2010-12-18 15:51:37' AS DATE);
答案 1 :(得分:3)
比依赖数据库进行日期格式化更好的方法是依靠PHP来实现这一点。
echo date("Y-m-d", strtotime($row['column']));
这既解决了您的初始问题(在构建查询时混淆了join语句),也为您提供了更多的灵活性(例如,可能以后用户可以设置首选日期格式的首选项),以及更高的可伸缩性(你可以在PHP中做的工作越多,水平可扩展性越好,越好。
答案 2 :(得分:0)
如果您不想更改PHP脚本,可以尝试调整datestyle
配置参数。
我建议您只是更改PHP脚本。更改全局服务器配置可能会影响当前在服务器上运行的其他内容。