sql - 是否可以使用 SQL 将日期时间列便携式转换为字符串
问题描述
我在 sybase 中有一个定义为日期时间的列,并已使用将其转换为字符串
ISNULL(CAST(CAST(most_recent_trades.asof_date AS DATE) AS VARCHAR(20))
事实证明,在 sybase 中将其表示为字符串与我的单元测试数据库 H2 不同。
In sybase
Sep 1 2016
In H2
2016-09-01
该列也被定义为 H2 中的日期时间。
有没有办法将 datetime 列转换为 Sybase 和 H2 中相同的字符串表示形式的字符串(如果有帮助,我不需要时间部分)?
编辑:我认为没有任何方法可以通过一个函数以可移植的方式执行此操作,所以我决定使用 YEAR、MONTH 和 DAY 函数(它们在 Sybase 和 H2 中都可用),提取部分并将它们连接起来以生成一个在 Sybase 和 H2 中表示为字符串时看起来相同的日期。在这一点上,这对我有用。
解决方案
我将使用CONVERT()121
函数的格式,然后获取它的日期部分,如下所示:
substring(convert(varchar(30), most_recent_trades.asof_date, 121), 1, 10)
推荐阅读
- android - Google Play 内部测试版轨道在 14 小时后未显示更新
- python - 如何从当前文件夹外导入模块?
- airflow - 气流执行间隔 - 使用 execution_date 和 next_execution_date 定义时间片是否标准?
- sql-server - 从 SQL 导出到 Access
- laravel - ErrorException array_column() 期望参数 1 是数组,给定对象
- javascript - 嵌套字典中“this”引用的Javascript可能吗?
- c# - 如何在 .NET 中使用 Hot Chocolate 扩展 GraphQL 自省类型
- json - 为每个数组元素生成单独的 CSV 记录
- couchbase - 无法在 macOS 上的 python 中安装 couchbase
- javascript - 找不到匹配记录时如何在搜索操作中显示“未找到记录”