Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

django . में टाइमस्टैम्प फ़ील्ड

वास्तव में इस पर एक बहुत अच्छा और ज्ञानवर्धक लेख था। यहां:http://ianrolfe.livejournal.com/36017.html

पृष्ठ पर समाधान थोड़ा बहिष्कृत है, इसलिए मैंने निम्नलिखित किया:

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())

इसका उपयोग करने के लिए, आपको बस इतना करना है:timestamp = UnixTimestampField(auto_created=True)

MySQL में, कॉलम इस तरह दिखना चाहिए:'timestamp' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

इसके साथ केवल एक कमी यह है कि यह केवल MySQL डेटाबेस पर काम करता है। लेकिन आप इसे दूसरों के लिए आसानी से संशोधित कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सीमा के साथ मैसकल डिलीट स्टेटमेंट

  2. प्रत्येक उपयोगकर्ता के लिए प्रत्येक दिन में उच्चतम 3 स्कोर चुनें

  3. क्या MySQL एकल क्वेरी के लिए एकाधिक अनुक्रमणिका का उपयोग कर सकता है?

  4. mySQL में IP कैसे स्टोर करें?

  5. डेटाबेस छोड़ने और फिर से बनाने के बाद टेबल बनाने के लिए हाइबरनेट को मजबूर करें