当前位置: 首页 > 面试题库 >

使用DB Browser for SQLite从一种日期格式转换为另一种日期格式

弓明亮
2023-03-14
问题内容

我正在寻找使用SQL将一种日期格式转换为另一种格式。我正在使用用于SQLite的数据库浏览器,日期存储在“ TEXT”类型的列中。

这是当前格式的2个示例:

2017/4/17上午9:09:09

2017/10/4下午10:21:13

请注意,在当前的日期,月份和小时格式中,如果只有一位数字,则当前不会以前导“
0”填充。他们也把月份放在第一位,然后是日期,然后是年份。这两个示例应转换为YYYY-MM-DD HH:MM:SS(24小时)格式:

IE

4/17/2017 9:09:09 AM-> 2017-04-17 09:09:09

2017/10/4下午10:21:13-> 2017-10-04 22:21:13

等等。

如果有人可以为我提供SQL查询,该查询可以将列中的所有值(如第一种格式)转换为第二种格式,将不胜感激。谢谢!


问题答案:

因此,我对python不太了解,因此不得不使用“ instr()和substr()命令的淫秽链”。这是一团糟,但现在似乎可以使用了。

instr(DATE,'/') 用于查找第一个“ /”的位置

length (rtrim(DATE, 'PMA0123456789: ')) 用于查找第二个“ /”的位置

instr(DATE, ':') 用于查找第一个’:’的位置

下面是我创建的烂摊子:D

UPDATE testtable
SET DATE = 
substr (DATE, length (rtrim(DATE, 'PMA0123456789: '))+1,4) || '-' ||
CASE instr(DATE, '/')
    WHEN 2 THEN
        '0' 
    ELSE ''
END 
|| substr (DATE,1,instr(DATE,'/')-1) || '-' ||
CASE (length (rtrim(DATE, 'PMA0123456789: '))) - instr(DATE,'/')
    WHEN 2 THEN
        '0' 
    ELSE '' 
END 
|| substr (DATE,instr(DATE,'/')+1, length (rtrim(DATE, 'PMA0123456789: ')) - instr(DATE,'/')-1)
|| ' ' || 
CASE substr(DATE,length(DATE)-1,2)
    WHEN 'AM' THEN
        CASE substr(DATE, instr(DATE, ':')-2,2)
            WHEN '12' then
                '00'
            ELSE
                CASE substr(DATE, instr(DATE, ':')-2, 1)
                    WHEN ' ' THEN 
                        '0'
                    ELSE
                        substr(DATE, instr(DATE, ':')-2,1)  
                END
                || substr(DATE, instr(DATE, ':')-1,1) 
        END
    WHEN 'PM' THEN
        CASE substr(DATE, instr(DATE, ':')-2,2) 
            WHEN '12' THEN
                substr(DATE, instr(DATE, ':')-2,2) 
            ELSE
                CAST (substr(DATE,instr(DATE, ':')-2,2) AS INT) + 12 
        END
    ELSE
        'error'
END 
|| ':' || substr(DATE,instr(DATE, ':')+1,5);


 类似资料:
  • 问题内容: 有没有一种简单的方法可以将一种日期格式转换为PHP中的另一种日期格式? 我有这个: 但是我当然希望它返回一个当前日期,而不是返回“黎明”。我究竟做错了什么? 问题答案: 第二个参数必须是正确的时间戳(自1970年1月1日以来的秒数)。您正在传递一个字符串,date()无法识别。 您可以使用 strtotime() 将日期字符串转换为时间戳。但是,即使strtotime()也无法识别格式

  • 问题内容: 我在MySQL中有专栏。 如何使用PHP 将其转换为 mm / dd / yy H:M(AM / PM)显示 ? 问题答案: 要将从MySQL检索的日期转换为请求的格式(): 请参考PHP日期格式选项以调整格式。

  • 我有一个输入日期作为字符串,格式为dd/MM/yyyy 现在我想把它转换成日期对象,格式为yyyy-MM-dd 目前我正在做 输入为:“2013年4月2日” 但我的约会对象是… 所需输出为:2013-02-04(不是字符串,而是日期对象)

  • 问题内容: 我只是在自己学习熊猫,而遇到的问题很少。 在从csv文件读取的DataFrame中,我有一列包含日期数据,该日期数据具有不同的格式(例如和,可能为空白。),并且我想统一此列的格式。但是我不知道是否还有其他格式。因此,当我使用时,它会引发一些错误,例如格式不匹配以及数据不符合时间要求。如何统一此列的格式? 我已经将该列的一部分转换为datetime dtype,它的格式是。我可以保留da

  • 我正在尝试用varchar列中的更新日期列 这里,是varchar数据类型,是日期数据类型。有多种类型的日期格式,例如,09302012, 9/30/2012, 2012-09-30和更多不同的类型 如何编写单个查询以在单个查询中使用各种类型的日期格式更新列。 已编辑::: 抱歉搞砸了...我刚刚意识到这些是ssis包中的单独(部分)更新... 我们有不同类型(6)的品牌,每个品牌都会发送不同日期