Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
django
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
django
Commits
90468079
Kaydet (Commit)
90468079
authored
Haz 19, 2016
tarafından
Simon Charette
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Refs #25774 -- Adjusted datetime database function docs field names.
üst
c4a876a0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
42 deletions
+42
-42
database-functions.txt
docs/ref/models/database-functions.txt
+42
-42
No files found.
docs/ref/models/database-functions.txt
Dosyayı görüntüle @
90468079
...
...
@@ -286,9 +286,9 @@ Date Functions
We'll be using the following model in examples of each function::
class Experiment(models.Model):
start_time = models.DateTimeField()
start_
date
time = models.DateTimeField()
start_date = models.DateField(null=True, blank=True)
end_time = models.DateTimeField(null=True, blank=True)
end_
date
time = models.DateTimeField(null=True, blank=True)
end_date = models.DateField(null=True, blank=True)
``Extract``
...
...
@@ -349,16 +349,16 @@ Usage example::
>>> start = datetime(2015, 6, 15)
>>> end = datetime(2015, 7, 2)
>>> Experiment.objects.create(
... start_time=start, start_date=start.date(),
... end_time=end, end_date=end.date())
... start_
date
time=start, start_date=start.date(),
... end_
date
time=end, end_date=end.date())
>>> # Add the experiment start year as a field in the QuerySet.
>>> experiment = Experiment.objects.annotate(
... start_year=Extract('start_time', 'year')).get()
... start_year=Extract('start_
date
time', 'year')).get()
>>> experiment.start_year
2015
>>> # How many experiments completed in the same year in which they started?
>>> Experiment.objects.filter(
... start_
time__year=Extract('end_
time', 'year')).count()
... start_
datetime__year=Extract('end_date
time', 'year')).count()
1
``DateField`` extracts
...
...
@@ -395,8 +395,8 @@ that deal with date-parts can be used with ``DateField``::
>>> start_2015 = datetime(2015, 6, 15, 23, 30, 1, tzinfo=timezone.utc)
>>> end_2015 = datetime(2015, 6, 16, 13, 11, 27, tzinfo=timezone.utc)
>>> Experiment.objects.create(
... start_time=start_2015, start_date=start_2015.date(),
... end_time=end_2015, end_date=end_2015.date())
... start_
date
time=start_2015, start_date=start_2015.date(),
... end_
date
time=end_2015, end_date=end_2015.date())
>>> Experiment.objects.annotate(
... year=ExtractYear('start_date'),
... month=ExtractMonth('start_date'),
...
...
@@ -440,19 +440,19 @@ Each class is also a ``Transform`` registered on ``DateTimeField`` as
>>> start_2015 = datetime(2015, 6, 15, 23, 30, 1, tzinfo=timezone.utc)
>>> end_2015 = datetime(2015, 6, 16, 13, 11, 27, tzinfo=timezone.utc)
>>> Experiment.objects.create(
... start_time=start_2015, start_date=start_2015.date(),
... end_time=end_2015, end_date=end_2015.date())
... start_
date
time=start_2015, start_date=start_2015.date(),
... end_
date
time=end_2015, end_date=end_2015.date())
>>> Experiment.objects.annotate(
... year=ExtractYear('start_time'),
... month=ExtractMonth('start_time'),
... day=ExtractDay('start_time'),
... weekday=ExtractWeekDay('start_time'),
... hour=ExtractHour('start_time'),
... minute=ExtractMinute('start_time'),
... second=ExtractSecond('start_time'),
... year=ExtractYear('start_
date
time'),
... month=ExtractMonth('start_
date
time'),
... day=ExtractDay('start_
date
time'),
... weekday=ExtractWeekDay('start_
date
time'),
... hour=ExtractHour('start_
date
time'),
... minute=ExtractMinute('start_
date
time'),
... second=ExtractSecond('start_
date
time'),
... ).values(
... 'year', 'month', 'day', 'weekday', 'hour', 'minute', 'second',
... ).get(end_
time__year=ExtractYear('start_
time'))
... ).get(end_
datetime__year=ExtractYear('start_date
time'))
{'year': 2015, 'month': 6, 'day': 15, 'weekday': 2, 'hour': 23, 'minute': 30, 'second': 1}
When :setting:`USE_TZ` is ``True`` then datetimes are stored in the database
...
...
@@ -465,11 +465,11 @@ values that are returned::
>>> tzinfo = pytz.timezone('Australia/Melbourne') # UTC+10:00
>>> with timezone.override(tzinfo):
... Experiment.objects.annotate(
... day=ExtractDay('start_time'),
... weekday=ExtractWeekDay('start_time'),
... hour=ExtractHour('start_time'),
... day=ExtractDay('start_
date
time'),
... weekday=ExtractWeekDay('start_
date
time'),
... hour=ExtractHour('start_
date
time'),
... ).values('day', 'weekday', 'hour').get(
... end_
time__year=ExtractYear('start_
time'),
... end_
datetime__year=ExtractYear('start_date
time'),
... )
{'day': 16, 'weekday': 3, 'hour': 9}
...
...
@@ -479,11 +479,11 @@ way, and takes priority over an active timezone::
>>> import pytz
>>> tzinfo = pytz.timezone('Australia/Melbourne')
>>> Experiment.objects.annotate(
... day=ExtractDay('start_time', tzinfo=melb),
... weekday=ExtractWeekDay('start_time', tzinfo=melb),
... hour=ExtractHour('start_time', tzinfo=melb),
... day=ExtractDay('start_
date
time', tzinfo=melb),
... weekday=ExtractWeekDay('start_
date
time', tzinfo=melb),
... hour=ExtractHour('start_
date
time', tzinfo=melb),
... ).values('day', 'weekday', 'hour').get(
... end_
time__year=ExtractYear('start_
time'),
... end_
datetime__year=ExtractYear('start_date
time'),
... )
{'day': 16, 'weekday': 3, 'hour': 9}
...
...
@@ -546,11 +546,11 @@ Usage example::
>>> from datetime import datetime
>>> from django.db.models import Count, DateTimeField
>>> from django.db.models.functions import Trunc
>>> Experiment.objects.create(start_time=datetime(2015, 6, 15, 14, 30, 50, 321))
>>> Experiment.objects.create(start_time=datetime(2015, 6, 15, 14, 40, 2, 123))
>>> Experiment.objects.create(start_time=datetime(2015, 12, 25, 10, 5, 27, 999))
>>> Experiment.objects.create(start_
date
time=datetime(2015, 6, 15, 14, 30, 50, 321))
>>> Experiment.objects.create(start_
date
time=datetime(2015, 6, 15, 14, 40, 2, 123))
>>> Experiment.objects.create(start_
date
time=datetime(2015, 12, 25, 10, 5, 27, 999))
>>> experiments_per_day = Experiment.objects.annotate(
... start_day=Trunc('start_time', 'day', output_field=DateTimeField())
... start_day=Trunc('start_
date
time', 'day', output_field=DateTimeField())
... ).values('start_day').annotate(experiments=Count('id'))
>>> for exp in experiments_per_day:
... print(exp['start_day'], exp['experiments'])
...
...
@@ -558,10 +558,10 @@ Usage example::
2015-06-15 00:00:00 2
2015-12-25 00:00:00 1
>>> experiments = Experiment.objects.annotate(
... start_day=Trunc('start_time', 'day', output_field=DateTimeField())
... start_day=Trunc('start_
date
time', 'day', output_field=DateTimeField())
... ).filter(start_day=datetime(2015, 6, 15))
>>> for exp in experiments:
... print(exp.start_time)
... print(exp.start_
date
time)
...
2015-06-15 14:30:50.000321
2015-06-15 14:40:02.000123
...
...
@@ -592,9 +592,9 @@ that deal with date-parts can be used with ``DateField``::
>>> start1 = datetime(2014, 6, 15, 14, 30, 50, 321, tzinfo=timezone.utc)
>>> start2 = datetime(2015, 6, 15, 14, 40, 2, 123, tzinfo=timezone.utc)
>>> start3 = datetime(2015, 12, 31, 17, 5, 27, 999, tzinfo=timezone.utc)
>>> Experiment.objects.create(start_time=start1, start_date=start1.date())
>>> Experiment.objects.create(start_time=start2, start_date=start2.date())
>>> Experiment.objects.create(start_time=start3, start_date=start3.date())
>>> Experiment.objects.create(start_
date
time=start1, start_date=start1.date())
>>> Experiment.objects.create(start_
date
time=start2, start_date=start2.date())
>>> Experiment.objects.create(start_
date
time=start3, start_date=start3.date())
>>> experiments_per_year = Experiment.objects.annotate(
... year=TruncYear('start_date')).values('year').annotate(
... experiments=Count('id'))
...
...
@@ -607,7 +607,7 @@ that deal with date-parts can be used with ``DateField``::
>>> import pytz
>>> melb = pytz.timezone('Australia/Melbourne')
>>> experiments_per_month = Experiment.objects.annotate(
... month=TruncMonth('start_time', tzinfo=melb)).values('month').annotate(
... month=TruncMonth('start_
date
time', tzinfo=melb)).values('month').annotate(
... experiments=Count('id'))
>>> for exp in experiments_per_month:
... print(exp['month'], exp['experiments'])
...
...
@@ -659,14 +659,14 @@ Usage example::
>>> from django.utils import timezone
>>> import pytz
>>> start1 = datetime(2014, 6, 15, 14, 30, 50, 321, tzinfo=timezone.utc)
>>> Experiment.objects.create(start_time=start1, start_date=start1.date())
>>> Experiment.objects.create(start_
date
time=start1, start_date=start1.date())
>>> melb = pytz.timezone('Australia/Melbourne')
>>> Experiment.objects.annotate(
... date=TruncDate('start_time'),
... day=TruncDay('start_time', tzinfo=melb),
... hour=TruncHour('start_time', tzinfo=melb),
... minute=TruncMinute('start_time'),
... second=TruncSecond('start_time'),
... date=TruncDate('start_
date
time'),
... day=TruncDay('start_
date
time', tzinfo=melb),
... hour=TruncHour('start_
date
time', tzinfo=melb),
... minute=TruncMinute('start_
date
time'),
... second=TruncSecond('start_
date
time'),
... ).values('date', 'day', 'hour', 'minute', 'second').get()
{'date': datetime.date(2014, 6, 15),
'day': datetime.datetime(2014, 6, 16, 0, 0, tzinfo=<DstTzInfo 'Australia/Melbourne' AEST+10:00:00 STD>),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment