Tengo un paquete ssis que se ejecuta en días hábiles (lunes a viernes). si recibo un archivo el martes, en segundo plano (DB), toma la fecha del día hábil anterior y realiza algunas transacciones. Si ejecuto el trabajo el viernes, tiene que buscar la fecha de los lunes y procesar las transacciones.Cómo obtener el día hábil anterior en una semana con el día hábil actual utilizando el servidor sql
he utilizado la consulta a continuación para obtener la fecha anterior negocio
Select Convert(varchar(50), Position_ID) as Position_ID,
TransAmount_Base,
Insert_Date as InsertDate
from tblsample
Where AsOfdate = Dateadd(dd, -1, Convert(datetime, Convert(varchar(10), '03/28/2012', 101), 120))
Order By Position_ID
si ejecuto esta consulta voy a conseguir los resultados de ayer Transactios. si ejecuté la misma consulta el lunes, tiene que buscar las transacciones de los viernes en lugar de los domingos.
Usando 'DATENIDO' para evitar tener que saber' DATEFIRST', pero completando ignorando que es un idioma específico? –
Muy bien Sin embargo, he encontrado más escenarios donde los conflictos DATEFIRST han sido un problema que los escenarios donde los conflictos de lenguaje han sido un problema. Por ejemplo, si crearas una UDF en tu base de datos no podrías definir la fecha primero dentro de la UDF, usted dependería de la consulta que llama a la función para establecer la fecha correcta (o no establecer una fecha diferente), es Es más probable que un usuario deba establecer una fecha diferente que establecer un idioma diferente (en mi experiencia). – GarethD
Para seguir elaborando, solía trabajar en una empresa donde la semana de comisiones se ejecuta de miércoles a martes para ventas de papel, y de viernes a jueves para ventas por cable. Podríamos usar las mismas consultas para informar esto estableciendo la fecha en primer lugar. cualquier uso de DATEPART (DAY, [date]) para identificar los fines de semana inútiles. Es por eso que ** prefiero ** usar el nombre de la fecha. No defiendo que sea perfecto. – GarethD