datetime的使用方法及mysql使用

datetime导入及简单使用

导包两种的方法
import datetime
#调用 例如获取当前时间
time=datetime.datetime.now()
两者的区别就在于少导入一个datetime
from datetime import datetime
time=datetime.now()
datetime 对象

获取当前时间 年月日 时分秒类型

import datetime
#获取当前时间 年月日形式
time2=datetime.datetime.now()
print('当前时间:',time2)
print('它的类型是:',type(time2))

在这里插入图片描述

和str之间的转换

strftime和strptime 一个不支持中文一个支持中文

import datetime

time2=datetime.datetime.now()
# 通过split()进行切割
str1=str(time2).split(".")[0]
#通过datetime里的strftime方法
str2=datetime.datetime.strftime(datetime.datetime.now(),'%Y-%m-%d %H:%M:%S')
str3=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

print('切割获取的',str1)
print('第一种',str2)
print('第二种',str3)
print('类型是:',type(str1))

在这里插入图片描述
strftime和strptime

import datetime
time2=datetime.datetime.now()
# 转换成指定格式,不支持中文 可以使用占位符输出
str1 = time2.strftime('%Y{}%m{}%d{}  %H{}%M{}%S{}%f{} %a').format('年','月','日','时','分','秒','毫秒')
# 将字符串再转换为datetime,第一个参数指定字符串,第二个指定格式
now_datetime = datetime.strptime(str1, '%Y年%m月%d日  %H时%M分%S秒%f毫秒 %a')
# 再转换为 Y年-m月-d日 H时:M分:S秒格式
time3=datetime.isoformat(now_datetime)

在这里插入图片描述

date 对象
import datetime
# 实例对象,获取今天的日期
now_date1 = datetime.date.today()
print(now_date1)
print('类型是:',type(now_date1))
# 将datetime转换为date
now_date2 = datetime.datetime.now().date()
print(now_date2)
print('类型是:',type(now_date2))

在这里插入图片描述

转换成当前时间戳
#时间戳一般都是通过time获取的
import time
time1=time.time()
print(time1)

# datetime.now()获取到的当前时间可以通过转换成时间戳
import datetime
time2=datetime.datetime.now()
# 转换成时间戳,类型是float
now_time = time2.timestamp()
print('转换成时间戳:',now_time)

在这里插入图片描述
常用的格式符号

格式符号作用
%Y表示年份 例如:2022
%m返回月份 范围[0,12]
%d返回的是当前时间是当前月的第几天
%H以24小时制表示当前小时
%M返回分钟 范围 [0,59]
%S返回秒数 范围 [0,6]
%f微秒的表示: 范围: [0,999999]
%a星期的英文单词的缩写:如星期一, 则返回 Mon

更多的格式符号

格式符号作用
%a星期的英文单词的缩写:如星期一, 则返回 Mon
%A星期的英文单词的全拼:如星期一,返回 Monday
%b月份的英文单词的缩写:如一月, 则返回 Jan
%B月份的引文单词的缩写:如一月, 则返回 January
%c返回datetime的字符串表示,如03/08/15 23:01:26
%d返回的是当前时间是当前月的第几天
%f微秒的表示: 范围: [0,999999]
%H以24小时制表示当前小时
%I以12小时制表示当前小时
%j返回 当天是当年的第几天 范围[001,366]
%m返回月份 范围[0,12]
%M返回分钟数 范围 [0,59]
%P返回是上午还是下午–AM or PM
%S返回秒数 范围 [0,61]。。。手册说明的
%U返回当周是当年的第几周 以周日为第一天
%W返回当周是当年的第几周 以周一为第一天
%w当天在当周的天数,范围为[0, 6],6表示星期天
%x日期的字符串表示 :03/08/15
%X时间的字符串表示 :23:22:08
%y两个数字表示的年份 15
%Y四个数字表示的年份 2015
%z与utc时间的间隔 (如果是本地时间,返回空字符串)
%Z时区名称(如果是本地时间,返回空字符串)

Mysql数据库的datetime操作

str形式可以用于加入到mysql数据库的datetime字段中。例如
在这里插入图片描述

import datetime
str2=datetime.datetime.strftime(datetime.datetime.now(),'%Y-%m-%d %H:%M:%S')
sql=f"insert into time_shishi (time,name) values('{str2}','yi')"
class Times:
    def post_time(self):
        try:
            db.update(sql)
            db.commit()
            print('添加成功')
        except Exception as e:
            print(e)
            db.rollback()
timea=Times()
timea.post_time()

mysql的datetime类型
create table s_time (
time datetime DEFAULT CURRENT_TIMESTAMP,
)
DEFAULT CURRENT_TIMESTAMP 默认为当前时间

实例题

查询指定用户(uid)的每月(time)总分数(scoure)
在这里插入图片描述
可以使用date_format函数进行分组

date_format函数取time字段只取到月份,sum()算出分数总和 where条件指定uid,group by根据date分组
select date_format(time,'%Y-%m') as date,sum(scoure) as score from s_time where uid=1  group by date

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值