我可以在 ContentResolver 列查询上运行 SQL 函数吗?
我想知道当您查询 ContentProvider 时,Android 的 ContentResolver 是否支持在列上使用 SQL 函数。比如SQLite3的日期函数,获取特定的日期格式,还是datediff?
你对此了解多少?
I am wondering if Android's ContentResolver supports using SQL functions over the columns when you query a ContentProvider. Such as SQLite3 date functions, to get a specific date format, or datediff?
What do you know about this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不会。即使您发现它适用于某些情况,您也不能假设它适用于所有情况。
ContentProvider
是一个外观。给定的 ContentProvider 可能会使用 SQLite。它可能使用 XML 文件。它可能使用 JSON 文件。它可能使用 CSV 文件。它可能使用一些第三方 SQL 数据库。它可能使用一些第三方对象数据库。它可能没有太多本地内容,而是将其内容存储在云中,通过 Web 服务调用访问。您甚至无法确定ContentProvider
是否一定支持经典的 SQLWHERE
子句 - 某些支持 XML 的ContentProvider
可能会使用 XQuery 语法。因此,即使知道
datediff
是什么,您也绝对不能依赖ContentProvider
。No. Even if you find it works for some cases, you cannot assume it works across the board.
ContentProvider
is a facade. A givenContentProvider
might use SQLite. It might use XML files. It might use JSON files. It might use CSV files. It might use some third-party SQL database. It might use some third-party object database. It might not have much of any local content, but instead have its stuff out in the cloud, reached via Web service calls. You can't even be sure that aContentProvider
necessarily supports a classic SQLWHERE
clause -- some XML-backedContentProvider
might use XQuery syntax instead.Hence, you definitely cannot rely upon a
ContentProvider
even knowing whatdatediff
is.