7

运行以下查询时。select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = to_char('12-02-2012','DD-MM-YYYY');

出现的错误为“SQL 状态 42725:错误:函数 to_char(未知,未知)不是唯一的”

如何在选择查询之上运行?

4

3 回答 3

7

你可能的意思是to_char('12-02-2012'::date, 'DD-MM-YYYY')to_char无法将纯字符串转换为字符串。尽管如此,这似乎没有意义,您需要这两者之一,具体取决于您的日期常量的格式(无法从您提供的实际示例日期确定):

select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = '12-02-2012';
select * from surgicals where to_char(dt_surgery ,'MM-DD-YYYY' ) = '12-02-2012';
于 2012-06-27T11:20:46.287 回答
4

这里的错误是您正在对日期进行字符串比较。使用日期/时间数学,它可以考虑到时区等有趣的事情,并且仍然正确。

于 2012-06-27T15:27:07.030 回答
3

也许这就是你需要的:

SELECT *
FROM surgicals 
WHERE date_trunc('day', dt_surgery) = '2012-02-12'
    ;
于 2012-06-27T12:23:51.090 回答