搞清楚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. Movavi Video Editor 15 Plus Mac怎样更改视频的分辨率?

    使用Movavi Video Editor 15您可以对视频进行切割和修剪,裁剪和旋转,色度键,视频稳定以及画中画等很多的编辑,该软件操作简单,就算是新手也无需担心操作问题,本文讲述了Movavi V ...

  2. MySQL ERROR 1064(42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

    通常出现该错误的原因是使用了 MySQL 的保留字 解决方法是对使用的保留字使用反引号  (Tab键上面)

  3. 数据流图——从软考真题中学画数据流图DFD

    文章目录 题目 画顶层图 画0层图 解题技巧 题目 建议将题目复制到word后与此文分屏查看.后面需要多次查看题目. 某高校欲开发一个成绩管理系统,记录并管理所有选修课程的学生的平时成绩和考试成绩, ...

  4. mysql触发器trigger 实例详解

    mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html)   MySQL好像从5.0.2版本就开始支持触发器的功能 ...

  5. 使用git提交项目到码云

    1.下载git客户端工具(.exe) 点击安装 2.找到你存放项目的根目录(例如:e:/gittest) 3.在该根目录下,右键,选择“Git Bash Here” 4.出现命令行,输入初始化命令: ...

  6. python 模块——os 模块

    os 模块--操作系统的各种接口 常用函数: os.path os.path.join(path,*paths) (常用,设置文件路径)将一个或者多个路径连接起来. PATH_TO_TEST_IMAG ...

  7. Java程序设计(第二版)复习 第三章

    数组的使用 首先定义,然后用new生成数组,最后通过下标访问 定义 此时只是引用还未分配内存空间,需要使用new去分配内存空间,否则是无法被访问的 定义的两种方法:数据类型 数组名[];数据类型 [] ...

  8. Jquery.Datatable 控件后端分页实例 (后台使用ashx、aspx-webmethod)

    本实例引用Datatable版本号: 1.10.16 一.传到aspx后台(webmethod) 1.添加js.css引用: <link href="/Scripts/ThirdLib ...

  9. 在Linux下部署mysql时,使用group by碰到的问题

    mysql使用group by 的时候报错,错误信息如下: 1055:ER_WRONG_FIELD_WITH_GROUP: Expression #2 of SELECT list is not in ...

  10. EC20指令测试

    cat /dev/ttyUSB2 & echo -e "AT+CGMM\r\n" >/dev/ttyUSB2   //输出模块型号 echo -e "AT+ ...