目前我有一个主旋转,它存储约会以及TIME和DAY但不是DATE.对于主rota约会,SQL Server数据库如下所示.它是通过DAYPILOT日历控件创建的
正如您所看到的那样,时间存储但不是DATE但存储日.EG第0天是星期日,第1天是星期一等....
我想在UI中添加一个按钮,该按钮将从主旋转到LIVE rota的约会中复制,同时考虑到DATES
EG应在第1天(星期一)从主罗塔的任命中插入LIVE rota表,但在Daypilot日历控制EG的当前DATE中添加LIVE ROTA表中的分配开始将是2016-01- 16 09:30 它需要在daypilot日历中检查当周的当前日期,然后插入LIVE表.
这可能吗?如何检查当前日期并使用数据库中的日期字段确保DATE与正确的日期匹配?EG第0天,第1天等..?
用于创建主创建的当前SQL
public void CreateAssignment(DateTime start, DateTime end, int location, int week, string person, string note, DayOfWeek day)
{
using (DbConnection con = CreateConnection())
{
con.Open();
//string id = "";
var cmd = CreateCommand("insert into [master_rota] ([AssignmentStart], [AssignmentEnd], [LocationId], [PersonId], [AssignmentNote], week, day) values (@start, @end, @location, @person, @note, @Week, @day)", con);
AddParameterWithValue(cmd, "start", start.TimeOfDay);
AddParameterWithValue(cmd, "end", end.TimeOfDay);
AddParameterWithValue(cmd, "location", location);
AddParameterWithValue(cmd, "week", week);
AddParameterWithValue(cmd, "person", person);
AddParameterWithValue(cmd, "note", …Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server表,其中包含所有员工及其疾病的列表.
我需要能够计算他们在本季度患病的天数
问题是,有些人可能已经生病了一年,所以EG可以是2013-12-31,而UNTILDATE可能是2014-12-31(1年病假).但是,它应该只计算当前季度发生的疾病的天数.所以它应该是大约90天的疾病,而不是整整一年.
当前的SQL
select SUM(a.WORKDAYS) as Total
from ABSENCE a
where a.FROMDATE < GETDATE() and
a.UNTILDATE > DATEADD(MONTH, -3, GETDATE())
and
a.ABS_REASON='SICK'
Run Code Online (Sandbox Code Playgroud)
因此,目前,从任何一个正确的日期开始,我需要考虑那些在季度开始之前已经生病但仍然生病进入当前季度的人,但应该只计算从季度开始的天数.本季度末.
任何帮助将不胜感激.
我正在尝试为每个 Finance_charge_id 的每个 service_user_id 选择最大日期记录以及与最高日期相关联的金额
select distinct
s.Finance_Charge_ID, MAX(s.start_date), s.Amount
from
Service_User_Finance_Charges s
where
s.Service_User_ID = '156'
group by
s.Finance_Charge_ID, s.Amount
Run Code Online (Sandbox Code Playgroud)
问题是我收到多个金额不同的条目。我只想收到每个 Finance_charge_id 的最近日期的金额
目前我收到以下不正确的信息(第三行不应出现,因为第一行的日期更高)
Finance_Charge_ID (No column name) Amount
2 2014-10-19 1.00
3 2014-10-16 500.00
2 2014-10-01 1000.00
Run Code Online (Sandbox Code Playgroud) 我有以下每天在日常工作中运行的 SQL。我希望电子邮件中的结果在查询结果的每一行末尾都有一个换行符。
目前,电子邮件将所有内容都放在同一行,而不是 SQL 查询中的每行一行
EG 如果查询返回 10 行,则应将其放在电子邮件中的 10 行而不是连续的一行
IF (select count(*)
from HSOfficeDocuments h
where h.Expiry_Date <= dateadd(year, 1, getdate())) > 0
begin
exec msdb.dbo.sp_send_dbmail
@profile_name = 'OfficeNotificationsProfile',
@recipients = 'test@test.com',
@subject = 'Expiring Office Documents',
@query = 'select o.office, hs.document_type, h.Expiry_Date
from officesystem.dbo.HSOfficeDocuments h
join officesystem.dbo.HS_Document_Type hs on hs.id = h.Document_Type_id
join officesystem.dbo.Offices o on o.id = h.office_id
where h.Expiry_Date <= dateadd(year, 1, getdate())',
@query_result_header = 0,
@body_format = 'HTML'
end
Run Code Online (Sandbox Code Playgroud)