我正在使用SQL Server我需要知道患者接受治疗的天数.问题是我只能获得一个startDate而不是endDate当我运行查询并通过StartDate订购时,我得到这样的结果:
StartDate
2012-10-11 22:00:00.000
2012-10-11 23:10:31.000
2012-10-12 00:28:31.000
2012-10-12 01:39:01.000
2012-10-12 02:09:01.000
2012-10-12 03:39:01.000
2012-10-12 04:38:50.000
2012-10-20 06:00:00.000
2012-10-20 08:06:05.000
2012-10-20 10:21:55.000
2012-10-21 14:13:01.000
2012-10-21 15:13:01.000
Run Code Online (Sandbox Code Playgroud)
我应该得到的答案是4天(第11天,第12天,第20天和第21天)治疗在2012-10-12停止并在2012-10-20开始新的治疗如何总结病人得到的日子尽管没有endDate治疗?
谢谢,
Loperam
我可以通过以下解决方法在 PHP 中获得微秒的日期时间:
list($usec, $sec) = explode(" ", microtime());
echo date("Y-m-d\TH:i:s", $sec) . "." . floatval($usec)*pow(10,6);
Run Code Online (Sandbox Code Playgroud)
我需要两个日期时间之间的微秒差异,无法解决以下问题:
$datetime1 = new DateTime('2013-08-14 18:49:58.606');
$datetime2 = new DateTime('2013-08-14 22:27:19.272');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%h hours %i minutes %s seconds %u microseconds');
Run Code Online (Sandbox Code Playgroud)
DateInterval::format没有格式字符 %u 或等价的微秒。
任何人都知道解决方法吗?
我正在运行一个简单的DATEDIFF查询但它似乎没有正确计算日期或我做错了什么.
如果我跑
PRINT DATEDIFF(Day, 2010-01-20, 2010-01-01)
RETURN 19
Run Code Online (Sandbox Code Playgroud)
哪个是对的.如果我把第一个月的月份更改为2月(02),我会发现一些奇怪的事情.
PRINT DATEDIFF(Day, 2010-02-20, 2010-01-01)
RETURN 20
Run Code Online (Sandbox Code Playgroud)
现在不应该是48或什么?
任何人都可以看到我做错了,或者这不是正确的功能,如果我想要这些日期之间的天数?
我试过从另一个开始约会:
PRINT (2010-02-20) - (2010-01-01)
RETURN -20
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢.
谢谢J.
在执行敏感的sql命令之前,我想进行健全性检查.
我试图删除[ LoadDt]日期值超过3天的记录,我的代码是:
delete IntraDayStats
where DATEDIFF(dd, LoadDt, dateadd(d,-3, getdate()) ) >= 3
Run Code Online (Sandbox Code Playgroud)
我想将此作为一个SQL作业安排,以便我的IntraDayStats表有一个滚动的3天历史.这项工作将每晚进行.
我怎样才能获得两个工作日之间的工作日数java.util.Date,即不包括周末和假日?假期,我指的是法律认可的假期.它必须取决于国家,因为假期不同国家.
例如,2012-08-27 - 2012-08-24应该返回1而不是3因为周末介于两者之间.
我已经看过Jollyday和ObjectLab-Kit,但我不能让它们满足我的需要.我的意思是,他们都有很多有趣的方法,但找不到像getBusinessDaysCount(Date d1, Date d2)...
我有两个日期时间字段,应该计算它们之间的时间字段.
如果它们之间的差异小于24小时,则应将其视为1天,将24至48小时视为2天.
我表中的每一行都有一个日期时间戳,我希望从现在起查询数据库,计算过去30天内的行数,前30天的行数等等.直到有30天的垃圾箱回到桌子的开头.
我已经成功地使用Python并进行了多次查询来执行此查询.但我几乎可以肯定它可以在一个MySQL查询中完成.
我有一张预订表,其中包含以下信息:
BookingID,(唯一,非null)StartDate,(非null)EndDate(非null)
我需要计算一个人居住的夜晚,我可以在EndDate和StartDate之间使用DATEDIFF.但是,如果有人在31个月内整个月居住,我们只收取30.
我不确定如何在SQL中执行此操作.我以为我必须创建一个变量,按月计算并添加到变量,但这似乎很麻烦,需要很长时间,特别是在年底.这需要每天为大约5,000条记录完成.
所以:如果某人在2014年7月25日开始并于2014年2月9日结束,那么晚上的时间是38而不是39.如果有人在2014年2月2日开始并在2014年1月11日结束,那么晚上是30.有人在2014年2月10日开始,到2014年10月31日结束,晚上是29.
我们将计算未来,因此结束日期是否大于报告运行日期并不重要.
有没有人有任何想法如何以最好的方式实现这一目标?
我正在努力将功能从SQL Server 2000迁移到MySQL.
在SQL Server 2000中执行以下语句,输出为109.
SELECT DATEDIFF(wk,'2012-09-01','2014-10-01') AS NoOfWeekends1
Run Code Online (Sandbox Code Playgroud)
在mysql中使用的等效查询timestampdiff()代替datediff并将输出提供为108.
SELECT TIMESTAMPDIFF(WEEK, '2012-09-01', '2014-10-01') AS NoOfWeekends1
Run Code Online (Sandbox Code Playgroud)
我需要输出在MySQL中执行时匹配,因此返回109.
SELECT
"reviewedAt",
"createdAt",
DATEDIFF('hour', "createdAt"::timestamp, "reviewedAt"::timestamp) AS hours_approved
FROM "yadda$prod"."Application"
Run Code Online (Sandbox Code Playgroud)
错误[42883]错误:函数datediff(未知,没有时区的时间戳,没有时区的时间戳)不存在提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。位置:36
datediff ×10
sql ×3
sql-server ×3
date ×2
mysql ×2
t-sql ×2
count ×1
datetime ×1
java ×1
php ×1
postgresql ×1
precision ×1
select ×1
sql-delete ×1