【问题标题】:How to remove "+00:00" from end of datetime.datetime object. (not remove time)如何从 datetime.datetime 对象的末尾删除“+00:00”。 (不删除时间)
【发布时间】:2017-05-31 18:31:32
【问题描述】:

我正在调用一个数据库,并返回一个 datetime.datetime 对象作为元组中的第三项。

SQL语句为:SELECT name,name_text,time_received FROM {}.{} WHERE DATE(time_received)=CURRENT_DATE LIMIT 1

如果我执行print(mytuple[2]),它会返回类似:2017-05-31 17:21:19+00:00,但每个值的末尾总是带有“+00:00”。如何从 datetime.datetime 对象中删除尾随的“+00:00”?

我尝试了不同的字符串剥离方法,例如print(mytuple[2][:-6]),但它给了我一个错误,说 datetime.datetime 对象不可下标。感谢您的帮助!

【问题讨论】:

  • 您始终可以将输出格式化为选择的一部分。它似乎包括时区偏移量。你只需要从渲染中排除它。 to_char(timestamp, 'YYYY-MM-DD HH24:MM:SS') 是一种方式。 postgresql.org/docs/8.2/static/functions-formatting.html 提供了许多其他人。 (在SQL语句的SELECT中完成获取mytuple[2]
  • @xQbert 如果我选择多个列,那么 to_char 会去哪里,其他列不是时间戳,而是字符串。
  • 发布用于获取结果集的 SQL。它应该绕过时间戳列。然后您可以将其别名返回,但这也取决于您希望从数据库中返回的数据类型。如果您想要一个日期/时间,那么我们需要将其转换回适当的数据类型。
  • @xQbert 我添加了我的 SQL 语句。我正在获取值并将其放入 javascript DataTables 列并对其进行排序。我认为数据表仍然将其视为字符串?也许不是,所以最好有一个日期/时间
  • so SELECT name,name_text,to_char(time_Received, 'YYYY-MM-DD HH24:MM:SS)'... time received (mytuple[2]) 然后将被格式化为字符数据而不是时间。因此,如果您的程序将其作为日期处理,我们必须将其转换回日期数据类型。

标签: sql database python-3.x datetime psycopg2


【解决方案1】:

Docs:

to_char(timestamp, 'YYYY-MM-DD HH24:MM:SS') 是一种方式。

针对您的具体情况:

SELECT name,name_text,to_char(time_Received, 'YYYY-MM-DD HH24:MM:SS)'

收到的时间 (mytuple[2]) 将被格式化为字符数据而不是时间。

因此,如果您的程序将其作为日期处理,我们必须将其转换回日期数据类型

【讨论】:

    【解决方案2】:

    我想为了使用字符串剥离方法,您必须首先将其转换为字符串,然后将其剥离,然后再转换回您想要使用的任何格式。干杯

    【讨论】:

      【解决方案3】:

      我想这就是你想要的:

      from time import strftime
      strftime("%Y-%m-%d %H:%M:%S")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-25
        • 1970-01-01
        • 2019-03-28
        • 2021-12-22
        • 2023-03-28
        • 2017-10-23
        • 1970-01-01
        相关资源
        最近更新 更多