函数to_char(未知,未知)不是唯一的

时间:2012-06-27 11:18:38

标签: postgresql

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

错误来自'SQL状态42725:错误:函数to_char(未知,未知)不是唯一的'

如何运行上面的选择查询?

3 个答案:

答案 0 :(得分:4)

你可能意味着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';

答案 1 :(得分:4)

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

答案 2 :(得分:3)

也许这就是你所需要的:

SELECT *
FROM surgicals 
WHERE date_trunc('day', dt_surgery) = '2012-02-12'
    ;