sql >> Databáze >  >> RDS >> Mysql

Existuje způsob, jak převést více formátů data na datetime python

Použijte dateutil třetí strany knihovna:

>>> from dateutil import parser
>>> parser.parse("August 2, 2008")
datetime.datetime(2008, 8, 2, 0, 0)
>>> parser.parse("04-02-2007")
datetime.datetime(2007, 4, 2, 0, 0)
>>> parser.parse("May 2014")
datetime.datetime(2014, 5, 6, 0, 0)

Převod do požadovaného formátu:

>>> parser.parse("August 2, 2008").strftime('%Y-%m-%d')
'2008-08-02'
>>> parser.parse("04-02-2007").strftime('%Y-%m-%d')
'2007-04-02'
>>> parser.parse("May 2014").strftime('%Y-%m-%d')
'2014-05-06'

Můžete jej nainstalovat pomocí pip:

pip install python-dateutil

Podívejte se také na:

>>> parser.parse("May 2014")
datetime.datetime(2014, 5, 6, 0, 0)
>>> # As you wanted day to be 0 and that is not valid
...
>>> datetime.datetime(2014, 5, 0, 0, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
>>> # Workaround:
...
>>> from datetime import datetime
>>> datedefault = datetime.now().replace(day=1, hour=0, minute=0, second=0, microsecond=0)
>>> parser.parse("May 2014",default=datedefault).strftime('%Y-%m-%d')
'2014-05-01'

Pokud v řetězci data není zadán den a také není zadáno žádné výchozí nastavení, použije se aktuální den. Ode dneška je 06 Aug 2016 , nahradil den 0 v první části odpovědi pro "May 2014" .




  1. Pomozte upravit JSON, abyste vytvořili pole spíše než „slovník“

  2. Použití dvou agregovaných hodnot z poddotazu SELECT v jednom vnějším dotazu SELECT

  3. PostgreSQL – nepodařilo se identifikovat operátor rovnosti pro typ json

  4. SQLite MIN