PYTHON
参考:https://docs.python.org/zh-cn/3/library/datetime.html
pandas
python读入excel,时间列本身为字符串,使用pandas读入excel后,dataframe的时间列类型为 datetime64,值的类型为timestamp
datetime
datetime.date 日期
datetime.time 时间
datetime.datetime 日期时间结合
datetime.timedelta 两个 date 或者 time 的时间间隔。
获取当前日期和时间
import datetime as dt
dt.datetime.now()#.strftime('%Y-%m-%d')
在当前时间增加1小时:add_hour=datetime.datetime.now()+datetime.timedelta(hours=1)
(datetime.datetime.now()+datetime.timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')
#'2021-07-22 15:20:15'
timedelta
import pandas as pd
#timedelta = date1 - date2
year = timedelta(days=365)
td = pd.to_timedelta('1 days ')
days = (td / np.timedelta64(1, 'D'))
days = td / np.timedelta64(60 * 24, 'm')
#Timedelta对象只读,只读实例属性.days,.seconds和.microseconds
days =td.days
#返回时间间隔包含了多少秒
td.total_seconds()
Timestamp
Timestamp('2021-06-30 00:00:00')
#计算当前日期前两个月时间
test_max_time - relativedelta(months=+2)
test_max_time + relativedelta(months=-2)
#时间多三天
delta = datetime.timedelta(days=3)
dt= dt + delta
months可替换为years,days,weeks,minutes,seconds等
Timestamp('2021-04-30 00:00:00')
str、timestamp\datetime转换
字符串转datetime
string = '2021-07-11 11:59:58'
time1 = datetime.datetime.strptime(string,'%Y-%m-%d %H:%M:%S')
datetime/timestamp转字符串:
time1_str = datetime.datetime.strftime(time1,'%Y-%m-%d %H:%M:%S')
时间戳转datetime
import time
import datetime
datetime.datetime.fromtimestamp(time.time())
#datetime.datetime(2024, 5, 9, 19, 40, 48)
datetime.date.fromtimestamp(time.time())
#datetime.date(2021, 7, 22)
time类型
<class ‘time.struct_time’>
import time
time1 = time.localtime()
#time.struct_time(tm_year=2021, tm_mon=7, tm_mday=22, tm_hour=14, tm_min=25, tm_sec=6, tm_wday=3, tm_yday=203, tm_isdst=0)
SQL SERVER
参考:https://blog.csdn.net/pengpegv5yaya/article/details/8024677
- 当前系统日期、时间
select getdate()
- dateadd在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
- datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18') --返回:17
select datediff(day,'2004-09-18','2004-09-01') --返回:-17
- datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2004-10-15') --返回 10
- datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五
- day(), month(),year() --可以与datepart对照一下
select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15')
,今天是周几=datename(weekday,'2004-10-15')