我如何计算从日期到下个月的第一天的日期
例:
--Start Date
07-07-2011
Run Code Online (Sandbox Code Playgroud)
多少天:
-- The 1st of the succeeding month of the start date above
08-01-2011
Run Code Online (Sandbox Code Playgroud)
预期结果(以天计):
25
Run Code Online (Sandbox Code Playgroud)
所以,如果我计算得到25的那一天,那么运行此查询会获得所需的时间戳:
SELECT CURRENT_DATE + INTERVAL '25 DAYS'
Run Code Online (Sandbox Code Playgroud)
结果:
2011-08-01 00:00:00
Run Code Online (Sandbox Code Playgroud)
只是想不出一个获得天数的方法,有什么建议吗?
或者开始日期,结束日期,天数之间的天数?
Long
运行此命令时,我的数据类型有问题:
Long nanos = 3 * 1000000000
println nanos
Run Code Online (Sandbox Code Playgroud)
它打印出来-1294967296
,而不是3000000000
,我不知道为什么.
我在这个页面上读到Long就足够了.那有什么不对?
我正在尝试整理一个表格,该表格将采用完整日期,YYYY-MM-DD,仅提取月份信息,然后将这些月份组合为单独的行.
我已经尝试使用MONTH(DATE)
命令,使用Group by
和Order By
命令,我得到了表中列出的4年的返回月份.我给出48行,列出1-12,重复4次.我希望按顺序获得1到1的回报.
这是我到目前为止的代码.
select MONTH(DATE) As "Month"
from DW******.SL****
Group By DATE
Order by DATE
Run Code Online (Sandbox Code Playgroud)
刚开始使用SQL,所以我为这个简单的问题道歉.
如果有人可以请你帮忙.这是我的Db和我将要使用,CONVERT
但这不适用于我们的服务器.
现在我做两个单独的SQL语句,一个SELECT COUNT(*)
基本上与搜索语句相同的标准.我不是最好的做出这些陈述,有时候有点慢,我想知道是否有更好的方法来做我做的事情.可能只在PHP中执行一个SQL语句和一些其他工作?这是一个示例"搜索包含"我有声明.
在第二个语句中,您将看到Y之间的X,它部分地由第一行计数语句的结果计算.
SQL行数:
SELECT COUNT(*)
FROM itemmast
LEFT OUTER JOIN itemweb
ON iline = line
AND iitem = item
JOIN linemst
ON iline = lline
LEFT OUTER JOIN custord
ON opline = iline
AND opitem = iitem
AND opcust = '12345'
LEFT OUTER JOIN ordwdtl
ON owline = iline
AND owitem = iitem
AND owusr ='user'
AND owcust ='12345'
WHERE ico = 01
AND iecomm = 'Y'
AND (UPPER(ITEMDESC) || UPPER(PRODDESC)) LIKE '%FOO%'
OR LINE LIKE '%FOO%' …
Run Code Online (Sandbox Code Playgroud) 我有一个名为“任务”的表,其中有两列:
我想将 Wait_in_seconds 值添加到查询中的日期并将其与当前日期进行比较。
下面的查询没有正确的语法,但它表明了我想要的:
SELECT t
FROM Task t
WHERE (Date_due + Wait_in_seconds) < CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
编辑: KIMI 解释说这对于 JPQL 是不可能的。
编辑 2:这个本机 MySQL 查询可以解决问题:
SELECT *, DATE_ADD(task.date_due, INTERVAL task.wait_seconds SECOND) AS dueDate
FROM task
HAVING dueDate < NOW()
ORDER BY dueDate ASC
Run Code Online (Sandbox Code Playgroud) 我想将数据从db2表导出到csv格式.我还需要第一行应该是所有列名.
使用以下命令我几乎没有成功
EXPORT TO "TEST.csv"
OF DEL
MODIFIED BY NOCHARDEL coldel: ,
SELECT col1,'COL1',x'0A',col2,'COL2',x'0A'
FROM TEST_TABLE;
Run Code Online (Sandbox Code Playgroud)
但有了这个我得到的数据
Row1 Value:COL1:
Row1 Value:COL2:
Row2 Value:COL1:
Row2 Value:COL2:
Run Code Online (Sandbox Code Playgroud)
等等
我也尝试了以下查询
EXPORT TO "TEST.csv"
OF DEL
MODIFIED BY NOCHARDEL
SELECT 'COL1',col1,'COL2',col2
FROM ADMIN_EXPORT;
Run Code Online (Sandbox Code Playgroud)
但是,当使用excel打开时,这会列出每个行数据的列名.
有没有办法可以获得以下格式的数据
COL1 COL2
value value
value value
Run Code Online (Sandbox Code Playgroud)
在excel打开时.
谢谢
我正在编写一个SQLServer 2008存储过程,它接受一个付款表,并尝试根据相关表中描述的一组规则(基本上是一组存储桶)分配这些付款.然而,分配(将支付价值放入桶中)正是导致我头痛的原因.
假设表Payments包含要支付的值和表Buckets是关于应该在每个桶中放入多少钱,直到要支付的初始值耗尽(达到0).
使用下面的表作为示例(实际用例有点做作,因为有一些复杂的标准来选择适合每次付款的存储桶):
PaymentId Value BucketId MaxAmount
-------------------------- --------------------------------
1 16.5 1 5.5
2 7.0 2 10
3 8.3
Run Code Online (Sandbox Code Playgroud)
对于付款1:5.5单位(该桶的最大值)应进入桶1,10个单位进入桶2(11.5是桶1的剩余量,但仍超过桶2的最大值)和1个单位(16.5 - 5.5 - 10) )应该放入桶3.重复所有付款.
这很容易在任何命令式语言中实现,甚至可能在带有for/while循环的SQL中实现,但我试图意识到是否有更好的方法(即使它是非可移植的并且特定于SQLServer 2005+).
我已经做了一些研究(主要是递归CTE),但没有真正想到的东西.我确信有很多StackOverflowers和SQL-fu一起回答它们的问题,所以我想把它放在那里看看......
非常感谢你的帮助.
sql ×5
db2 ×3
addition ×1
date ×1
datetime ×1
groovy ×1
ibm-midrange ×1
jpql ×1
mysql ×1
pagination ×1
php ×1
postgresql ×1
sql-server ×1