首页 > 解决方案 > 是否可以使用 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 中表示为字符串时看起来相同的日期。在这一点上,这对我有用。

标签: sqlh2sybase

解决方案


我将使用CONVERT()121函数的格式,然后获取它的日期部分,如下所示:

substring(convert(varchar(30), most_recent_trades.asof_date, 121), 1, 10)

推荐阅读