问题描述
我有一个存储过程,该存储过程将在一段时间(凌晨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()
的列上的索引。