运行以下查询时。select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = to_char('12-02-2012','DD-MM-YYYY');
错误来自'SQL状态42725:错误:函数to_char(未知,未知)不是唯一的'
如何运行上面的选择查询?
答案 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'
;