PostgreSQL 中的 DATE_FORMAT() 等效项

Posted

技术标签:

【中文标题】PostgreSQL 中的 DATE_FORMAT() 等效项【英文标题】:DATE_FORMAT() equivalent in PostgreSQL 【发布时间】:2012-10-22 19:47:14 【问题描述】:

我在mysql中有这个查询

SELECT * 
FROM `calendar` 
WHERE DATE_FORMAT(startTime, "%Y-%m-%d") = '2010-04-29'

如何转换为 Postgresql 查询?

【问题讨论】:

postgresql.org/docs/devel/static/functions-formatting.html 【参考方案1】:

基本上,MYSQL 中使用DATE_FORMAT() 的查询将日期转换为字符串。如果要将其与日期进行比较,请不要使用DATE_FORMAT(),而是使用DATE()。试试这个,在PostgreSQL 中,将时间戳转换为日期,

SELECT * 
FROM   "calendar"
WHERE  "startTime"::date = '2010-04-29'
SQLFiddle Demo other source

【讨论】:

不知何故我的查询没有返回正确的结果。在我的数据库库中,当我尝试“startTime”::date = '2012-10-05' 时,我的日期存储为 2012-10-05 09:00:00+08 ,我没有得到任何结果 startTime 列的数据类型是什么? datetime ,我想我的连接有问题,我会检查一下。感谢您的帮助【参考方案2】:
SELECT *
FROM calendar
WHERE starttime::date = '2010-04-29'

【讨论】:

以上是关于PostgreSQL 中的 DATE_FORMAT() 等效项的主要内容,如果未能解决你的问题,请参考以下文章

未绑定命名参数:Spring Boot 中的 DATE_FORMAT 本机查询

mysql 中的日期格式。date_format( ) 转换格式

Mysql中的DATE_FORMAT(data, format)

为啥 date_format() 在 Pyspark 中返回错误的一周?

jsqlparser:实现MySQL 函数DATE_FORMAT到Phoenix函数TO_CHAR的替换

sql 与 xml中的sql