mysql 、python 时间字符串之间转化

一、mysql
(1)字符串、日期之间互相转化

str_to_date(str,"%Y-%m-%d") # 字符串转化为日期,日期年月日必须完整(时间可省略),否则无法正确转化。
str(date) #日期可直接转化为字符串
SELECT date_format(NOW(),'%Y-%m-%d') #日期转化为字符串,可设定指定格式

在这里插入图片描述
(2)日期中提取所需信息

SELECT NOW(); #显示当前日期+时间 2020-02-16 22:10:36 
SELECT date(now());#显示当前日期 2020-02-16
SELECT date('2018-1-1');#显示日期2018-1-1
SELECT CURRENT_DATE();#显示当前日期2020-02-16
SELECT CURRENT_time();#显示当前时间22:10:36 
SELECT time(NOW());#显示当前时间22:10:36 

SELECT year(now());#显示年 2020
SELECT MONTH(now());#显示月 2
SELECT DAY(now()); #显示日 16
SELECT quarter(now());#当前季度 1
SELECT week(now())#当前周为一周中的第几周 7
SELECT weekday(now()) #当前周几
SELECT weekofyear(now())  #当前周为一周中的第几周 7

(3)计算时间差

SELECT round((DATEDIFF(NOW(),'2010-1-2')/365),1)  #计算时间差,返回天数,可通过除以相应时间转化为年、月、分

(4)timestamp 和datetime区别

SELECT TIMESTAMP(now())#显示当前时间戳
SELECT DATETIME(NOW()) #显示当前日期+时间
#timestamp 和datetime 都返回时间+日期,时间戳会根据不同时区显示对应时区匹配的时间,更为常用一些
set time_zone = '+9:00'; #可自行设置时区
SELECT UNIX_TIMESTAMP(now()) #(date 类型数据转换成 timestamp 形式整数)1581862640

二、python

import pandas as pd

df = pd.read_csv('C:/Users/MAYAN/Desktop/taobao_data.csv',encoding='utf-8')
df.head()

在这里插入图片描述

#字段insert_time 为字符串格式,首先将字符串格式转换为日期格式
df['insert_time'] = pd.to_datetime(df['insert_time'])

#使用strftime 将日期转化为指定格式的字符串 来自time模块
#strptime 将字符串转化为指定格式的日期 来自time模块

#需要根据日期对数据进行分组,需提取出日期
from datetime import datetime, timedelta

date = datetime.now() #当前时间
df['year_month'] = df['insert_time'].apply(lambda x: x.strftime('%Y-%m-%d')) #返回格式 2012-1-1
#单独提取年、月、日、时、分、秒
df['year'] = df['insert_time'].dt.year #年 year 可换为 month\day\hour\minute\second

#计算时间差
df['datediff'] = (datetime.now()- df['insert_time']).dt.days #days 可替换为minutes,microseconds
df['datediff'] = (datetime.now()- df['insert_time']).dt.days/365 #可计算年
#也可使用timedelta 反推时间
df['seven_days_ago'] = df['insert_time'] - timedelta(days=7) #days 可替换为weeks,hours,seconds ,可自行加减

发布了8 篇原创文章 · 获赞 3 · 访问量 2218

猜你喜欢

转载自blog.csdn.net/XiaoMaEr66/article/details/104349986