搞清楚datetime.datetime和datetime.date模块

他们两个的格式区别

datetime模块

In [1]: from datetime import datetime

In [2]: datetime.now()
Out[2]: datetime.datetime(2018, 11, 19, 9, 30, 34, 795738) In [3]: print(datetime.now())
2018-11-19 09:30:40.604522

date模块

In [1]: import datetime

In [5]: print(datetime.date(2018,11,11))
2018-11-11

django里datetime.datetime和datetime.date模块显示

from datetime import datetime

class People(models.Model):
name = models.CharField(max_length=30)
age = models.CharField(max_length=30)
part = models.CharField(max_length=30)
add_time = models.DateTimeField(default=datetime.now)
date = models.DateField(auto_now_add=True) def __str__(self):
return self.name

库里存储

2018-11-19 09:24:13.531194

后台展示

admin.py

from .models import People

class PeopleAdmin(admin.ModelAdmin):
list_display = ['name', 'age', 'part', 'add_time', 'date']
# list_filter = ['name', 'age', 'part']
# search_fields = ['name', 'age', 'part'] admin.site.register(People, PeopleAdmin)

datetime.date字段sql

发现对models.DateField的字段过滤很好用

In [25]: People.objects.filter(date__day=19).query.__str__()
Out[25]: 'SELECT `app03_people`.`id`, `app03_people`.`name`, `app03_people`.`age`, `app03_people`.`part`, `app03_people`.`add_time`, `app03_people`.`date` FROM `app03_people` WHERE EXTRACT(DAY FROM `app03_people`.`date`) = 19'

参考: https://www.django.cn/article/show-15.html?tdsourcetag=s_pcqq_aiomsg

# 匹配日期,date
User.objects.filter(create_time__date=datetime.date(2018, 8, 1))
User.objects.filter(create_time__date__gt=datetime.date(2018, 8, 2)) # 匹配年,year
User.objects.filter(create_time__year=2018)
User.objects.filter(create_time__year__gte=2018) # 匹配月,month
User.objects.filter(create_time__month__gt=7)
User.objects.filter(create_time__month__gte=7) # 匹配日,day
User.objects.filter(create_time__day=8)
User.objects.filter(create_time__day__gte=8) # 匹配周,week_day
User.objects.filter(create_time__week_day=2)
User.objects.filter(create_time__week_day__gte=2) # 匹配时,hour
User.objects.filter(create_time__hour=9)
User.objects.filter(create_time__hour__gte=9) # 匹配分,minute
User.objects.filter(create_time__minute=15)
User.objects.filter(create_time__minute_gt=15) # 匹配秒,second
User.objects.filter(create_time__second=15)
User.objects.filter(create_time__second__gte=15) # 按天统计归档
today = datetime.date.today()
select = {'day': connection.ops.date_trunc_sql('day', 'create_time')}
deploy_date_count = Task.objects.filter(
create_time__range=(today - datetime.timedelta(days=7), today)
).extra(select=select).values('day').annotate(number=Count('id'))
Q 的使用

models.DateTimeField的过滤

auto_now_add  自动添加,以添加记录时日期
auto_add 每次更新记录,自动更新

库里我想存储models.DateTimeField类型, 不想存储models.DateField类型, 因为time还需要展示的

方法1:

前端获取date, 过滤后返回

People.objects.filter(add_time__lt = datetime.datetime(2018,11,19))

- 但是每次会提示这个
E:\learn\learndj\venv\lib\site-packages\django\db\models\fields\__init__.py:1421: RuntimeWarning: DateTimeField People.add_time received a naive datetime (2018-11-19 00:00:00) while time zone support is active.
RuntimeWarning)

settings里时区设置

1.要么不设置

2.要么设置成

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

db里均存储的是当前系统时间.(不会差8h的.)

[django]date类型和datetime类型过滤的更多相关文章

  1. Date类型和Long类型的相互转换

    Date类型和Long类型的相互转换: import java.text.SimpleDateFormat; import java.util.Date; public class T { publi ...

  2. java date类型和calendar类型区别

    Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date ...

  3. mysql中varchar类型和datetime类型字段进行比较

    我是在mysql5.7版本进行比较 表a的字段order_no和表iwebshop_tmp的字段order_no一样 需要更新iwebshop_member_order表的datetime类型expi ...

  4. 数据库Date类型和JavaDate类型的转换

    问题:     java.lang.ClassCastException : java.util.Date cannot be cast to java.sql.Date 1.若是想将字符串装换成sq ...

  5. oracle数据库date类型和mysql数据库datetime类型匹配

    oracle数据库有date类型,但是没有datetime类型 mysql数据库既有date类型也有datetime类型. Oracle数据库的date类型和mysql的date类型是不一样的,Ora ...

  6. DATETIME类型和BIGINT 类型互相转换

    项目中使用BIGINT来存放时间,以下代码用来转换时间类型和BIGINT类型 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ========= ...

  7. Timestame类型和String 类型的转化

    Timestame类型和String 类型的转化 String转化为Timestamp: SimpleDateFormat df = new SimpleDateFormat("yyyy-M ...

  8. Python3.x中bytes类型和str类型深入分析

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和b ...

  9. 关于 Go 中 Map 类型和 Slice 类型的传递

    关于 Go 中 Map 类型和 Slice 类型的传递 Map 类型 先看例子 m1: func main() { m := make(map[int]int) mdMap(m) fmt.Printl ...

随机推荐

  1. JAVA实训第二次作业

    一维数组的创建和遍历. 声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数.要求: (1) 首先按"顺序"遍历,即打印顺序为:从第一个人到第四个人: (2) ...

  2. windows2012 raid架构 忘记系统管理员密码的解决方法

    1. http://bbs.51cto.com/thread-939710-1.html 2. https://wenku.baidu.com/view/115783cd0b4e767f5acfcef ...

  3. C# 互通操作 (二)基础知识1

    [DllImport("user32.dll", EntryPoint = "MessageBox")] public static extern int De ...

  4. MIUI通过xposed自动设置root权限

    在小米手机上,每次安装一个自己的插件总需要打开安全中心进行root权限授权,非常的麻烦,总共需要电5次确认,每次需要等5秒 因为插件开发的需求,希望重启计算机时候判断是否已经root,未root则自动 ...

  5. ArrayAdapter构造方法中的textViewResourseId

    simple_list_item_1:每个列表项都是一个普通的textView simple_list_item_2:每个列表项都是一个普通的textView(字体略大) simple_list_it ...

  6. 第二阶段第七次spring会议

    昨天我将尝试对软件进行添加搜索引擎的界面. private void linkLabel1_LinkClicked_1(object sender, LinkLabelLinkClickedEvent ...

  7. 开发快平台(M302I小e开发板系列教程)

    开发快平台(M302I小e开发板系列教程) 开发块平台ESP8266模块相关理解 一. M302I小e开发板源码注释,源码基于:v1.4.0.8-u34.zip 1. user_main.c /*** ...

  8. 团队-爬取豆瓣Top250电影-团队-阶段互评

    团队名称:咣咣踹电脑学号:2015035107217姓名:耿文浩 得分10 原因:组长带领的好,任务分配的好,积极帮助组员解决问题学号:2015035107213姓名:周鑫 得分8 原因:勇于分担,积 ...

  9. Java:ConcurrentHashMap的锁分段技术

    术语定义 术语 英文 解释 哈希算法 hash algorithm 是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值.  哈希表 hash table 根据设定的哈希函数H(ke ...

  10. 计蒜客 2019 蓝桥杯省赛 B 组模拟赛(三)一笔画

    #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> us ...