【问题标题】:SQL: convert string to datetime in Sybase IQSQL:在 Sybase IQ 中将字符串转换为日期时间
【发布时间】:2020-04-06 22:43:44
【问题描述】:

我试图在 Sybase IQ 中将字符串转换为日期时间。该字符串具有以下形式:'20191211 11:49:00.565224 +0700'

我首先尝试使用Convert DATETIME: 以下 2 个查询失败:

SELECT CONVERT("DATETIME", '20191211 16:29:56.226560 +0000', 112) AS "TIME_dt"
SELECT CONVERT(DATETIME, '20191211 16:29:56.226560 +0000', 112) AS "TIME_dt"

但是,当用于类似查询时

SELECT CONVERT("DATETIME", "TIME_", 112) AS "TIME_dt" FROM TABLE

并且“TIME_”列包含'20191211 16:29:56.226560 +0000',然后我得到结果:2019-12-11 00:00:00,它正确地将20191211转换为2019-12-11

接下来我尝试使用 SELECT CONVERT( DATETIMEOFFSET , '20191211 11:49:00.565224 +0700') 并且它有效,但是当我在类似的查询中使用它时

SELECT CONVERT(DATETIMEOFFSET, "TIME_") AS "TIME_dt" FROM TABLE

我收到一个错误:

[Code: 21, SQL State: QFA2A]  SQL Anywhere Error -1001030: Feature, Cast to Unknown TypeID (29) at line 1, is not supported. 
-- (dflib/df_Heap.cxx 6835) 

发生了什么事?

谢谢

【问题讨论】:

    标签: sql sap-iq


    【解决方案1】:

    我看了https://www.w3schools.com/sql/func_sqlserver_convert.asp,基本上,第三个参数是可选的,在你的情况下112,它告诉你确切的格式,这就是你得到格式错误的原因,因为它缺少112。另一个错误与如何传递变量、您实际传递的内容、字符串或日期值有关。

    【讨论】:

    • 我需要它来读取偏移量。 DATETIME 虽然有效,但不能正确处理偏移量。 DATETIMEOFFSET 处理偏移量,但在表中使用时失败。
    猜你喜欢
    • 2010-12-25
    • 2010-12-24
    • 2019-04-12
    • 2021-01-05
    • 2019-08-31
    • 2010-09-08
    • 2011-12-04
    • 2021-06-26
    • 2017-05-05
    相关资源
    最近更新 更多