Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bidang stempel waktu di django

Sebenarnya ada artikel yang sangat bagus dan informatif tentang ini. Di sini:http://ianrolfe.livejournal.com/36017.html

Solusi pada halaman sedikit usang, jadi saya melakukan hal berikut:

from django.db import models
from datetime import datetime
from time import strftime

class UnixTimestampField(models.DateTimeField):
    """UnixTimestampField: creates a DateTimeField that is represented on the
    database as a TIMESTAMP field rather than the usual DATETIME field.
    """
    def __init__(self, null=False, blank=False, **kwargs):
        super(UnixTimestampField, self).__init__(**kwargs)
        # default for TIMESTAMP is NOT NULL unlike most fields, so we have to
        # cheat a little:
        self.blank, self.isnull = blank, null
        self.null = True # To prevent the framework from shoving in "not null".

    def db_type(self, connection):
        typ=['TIMESTAMP']
        # See above!
        if self.isnull:
            typ += ['NULL']
        if self.auto_created:
            typ += ['default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP']
        return ' '.join(typ)

    def to_python(self, value):
        if isinstance(value, int):
            return datetime.fromtimestamp(value)
        else:
            return models.DateTimeField.to_python(self, value)

    def get_db_prep_value(self, value, connection, prepared=False):
        if value==None:
            return None
        # Use '%Y%m%d%H%M%S' for MySQL < 4.1
        return strftime('%Y-%m-%d %H:%M:%S',value.timetuple())

Untuk menggunakannya, yang harus Anda lakukan adalah:timestamp = UnixTimestampField(auto_created=True)

Di MySQL, kolom tersebut akan muncul sebagai:'timestamp' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

Satu-satunya kelemahan dengan ini adalah hanya berfungsi pada database MySQL. Tetapi Anda dapat dengan mudah memodifikasinya untuk orang lain.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cari kode di servlet ke mysql?

  2. php jalankan sekali dan masukkan dua kali dalam database mysql

  3. Meniru klausa MySQL LIMIT di Microsoft SQL Server 2000

  4. Interoperabilitas SQL-Server dan MySQL?

  5. MAMP PRO mogok; MySQL tidak akan mulai saat reboot