如何在Couchbase查询中将ISO日期格式转为"DD/MM/YYYY"字符串格式?
问题:将ISO 8601格式日期转换为DD/MM/YYYY格式
我的文档中有一个日期属性,格式如下:
2016-09-23T18:48:11.000+00:00
需要将其转换为"DD/MM/YYYY"格式,期望结果为:
"23/09/2016"
我尝试了以下查询语句:
SELECT date_format_str("2016-09-23T18:48:11.000+00:00", '11-11-1111' ) ;
得到的结果为:
[ { "$1": "2016-09-23T18:48:11Z" } ]
请问有可行的转换方法吗?
解决方法
你错误地使用了date_format_str函数的格式参数,需要使用对应日期分量的占位符而非数字占位。针对你使用的函数,正确的写法是:
SELECT date_format_str("2016-09-23T18:48:11.000+00:00", 'DD/MM/YYYY');
执行该语句后就能得到你期望的"23/09/2016"结果。
如果是其他数据库环境,对应的转换语句如下:
- MySQL:先将字符串转为日期类型,再格式化
SELECT DATE_FORMAT(STR_TO_DATE("2016-09-23T18:48:11.000+00:00", '%Y-%m-%dT%H:%i:%s.%f%z'), '%d/%m/%Y'); - PostgreSQL:通过
TO_TIMESTAMP解析日期字符串,再用TO_CHAR格式化SELECT TO_CHAR(TO_TIMESTAMP("2016-09-23T18:48:11.000+00:00", 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZ'), 'DD/MM/YYYY');
内容的提问来源于stack exchange,提问作者Sweta Sharma
相关产品推荐
相关产品推荐

