sql - 使用 SQL 将 DD MMM YYYY 转换为日期字段

标签 sql database date sybase

我有一个字符串值,例如 28Dec2013,我需要将其转换为 SQL 中的日期字段。

我需要转换为日期字段,以便我可以对该字段进行计算。 例如,如果我查询: select max(date) 它返回 '31Oct2015' 的值 - 但是我知道这个值应该是 '01Jan2016 '

有没有人知道如何解决这个问题。

由于字符串的格式,我不确定如何解决这个问题。 我在 Sybase 上运行它。

非常感谢。

最佳答案

因为我不了解 Sybase,所以我会选择一个或多或少独立于 dbms 的解决方案:

SUBSTRING(col FROM 6 for 4) || CASE SUBSTRING(col from 3 for 3)
                               when 'Jan' then '01'
                               when 'Feb' then '02'
                               when 'Mar' then '03'
                               when 'Apr' then '04'
                               when 'May' then '05'
                               when 'Jun' then '06'
                               when 'Jul' then '07'
                               when 'Aug' then '08'
                               when 'Sep' then '09'
                               when 'Oct' then '10'
                               when 'Nov' then '11'
                               when 'Dec' then '12' end
                            || SUBSTRING(col from 1 for 2)

ANSI SQL 兼容!

关于sql - 使用 SQL 将 DD MMM YYYY 转换为日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27422572/

相关文章:

mysql - 代码点火器+MySql : Integrate COUNT into this query to avoid double queries when paginating

java - Android:从MySQL数据库获取数据

sql - 需要根据开始日期输入获取数据

Java无法解析的日期异常

mysql - 记住我表索引

php - 如何在搜索之前隐藏PHP中SQL表的显示?

sql - SQL Compact 4 是否适合多用户 ASP.NET Web 应用程序?

mysql - 有什么方法可以将 Prometheus 数据存储到外部数据库,如 mysql 或 postgreSQL

MySQL/MariaDB 存储过程语法错误故障排除

php - 选择两个日期之间的数据