获取昨天的开始和结束日期戳,并转换为Unix时期

问题描述

我有一个存储过程,该存储过程将在一段时间(凌晨2-3点之间)内运行,但在该期间内并非总是在同一时间运行。

作为此过程的一部分,我需要执行3个步骤:

1:获取昨天日期的开始

所以如果今天是13/08/2020 13:51:02我需要查询返回12/08/2020 00:00:00并动态执行此操作

2:获取昨天日期的结尾

在上面,这将返回12/08/2020 23:59:59

3:将两个值都转换为Unix EPOCH时间戳

我过去在类似的问题(对时间不太敏感)上使用了以下代码

declare @yesterday date
set @yesterday = (SELECT convert(datetime,DATEADD(day,-1,getdate()),23 ))

这里的问题是,它给出的值恰好是过去24小时,因此,如果SP在2:15 am运行-当它在2:23 am或2:运行时,时间戳会不同。上午53点。

一旦我有了一种使开始日期和结束日期始终正确的方法,那么我将使用类似this解决方案将Datetime转换为Epoch时间戳,除非有人回答了这个问题一次完成所有任务的一种时髦方法(对此我将不胜感激)

解决方法

要在昨天午夜时分,请执行以下操作:

 DECLARE @today DATETIME = CAST(GETDATE() AS DATE);

今天要午夜

WHERE ts >= @yesterday AND ts < @today ...

要过滤昨天发生的时间,请

>=

CAST操作将GETDATE()返回的日期/时间值截断为午夜。

带有<ts的WHERE格式可以正确处理小写字母。它还碰巧利用了我称为from openpyxl import load_workbook fn = r'C:\Users\j2jennings\OneDrive - LA TROBE UNIVERSITY\PhD Data\Part5_Output_Python_FinalPlayer_Name.xlsx' df = pd.read_excel(fn,header=None) writer = pd.ExcelWriter(fn,engine='openpyxl',keep_vba = True) book = load_workbook(fn) writer.book = book writer.sheets = dict((ws.title,ws) for ws in book.worksheets) df.to_excel(writer,sheet_name='Sheet1',header=None,index=False) resultsQ1['OdChange'].to_excel(writer,index=False,startcol=0,startrow=1) resultsQ2['OdChange'].to_excel(writer,startcol=1,startrow=1) resultsQ3['OdChange'].to_excel(writer,startcol=2,startrow=1) resultsQ4['OdChange'].to_excel(writer,startcol=3,startrow=1) resultsQ1['60s'].to_excel(writer,startcol=4,startrow=1) resultsQ2['60s'].to_excel(writer,startcol=5,startrow=1) resultsQ3['60s'].to_excel(writer,startcol=6,startrow=1) resultsQ4['60s'].to_excel(writer,startcol=7,startrow=1) writer.save() 的列上的索引。