使用SQL减去日期的n天(Subtracting n Days from a date using SQL)
对于Oracle来说,我是一个初学者。 我无法弄清楚如何做类似的事情:
SELECT ID, NAME, TO_CHAR(DATEBIRTH, 'DD/MM/YYYY HH24:MI:SS') FROM PEOPLE WHERE DATEBIRTH >= ANOTHERDATE - NDAY
简而言之,我想选择在特定日期和时间之前N天出生的每个人,但我不太确定这是做到这一点的方式,也不会给我我期望的结果。
PS:我在oracle8i下开发。
I am quite a beginner when it comes to Oracle. I am having trouble figuring out how to do something similar to this :
SELECT ID, NAME, TO_CHAR(DATEBIRTH, 'DD/MM/YYYY HH24:MI:SS') FROM PEOPLE WHERE DATEBIRTH >= ANOTHERDATE - NDAY
To put it short, I want to select everyone who were born N days before a specific date and time but I am not quite sure that this is the way to do it nor that it would give me the results I expect.
PS: I am developping under oracle8i.
原文:https://stackoverflow.com/questions/7336354
更新时间:2023-02-10 15:02
最满意答案
SELECT '%'+LEFT(CAST((0.96774*100) as VARCHAR),5)
SELECT '%'+LEFT(CAST((0.96774*100) as VARCHAR),5)
相关问答
更多-
您需要强制SQL Server将除法中使用的int转换为小数,然后SQL Server将返回小数: DECLARE @v1 INT; DECLARE @v2 INT; DECLARE @v3 INT; SET @v1 = 5; SET @v2 = 2; SET @v3 = 4; SELECT (@v1 - @v2) / @v3; SELECT (@v1 - @v2) / CONVERT(DECIMAL(10,2), @v3); 请看一下这个问题的答案。 You need to force SQL S ...
-
1) select CAST(FLOOR(2 * 3.69) / 2 AS decimal(2, 1))处理第一种情况 - 对SQL Server论坛上类似问题的回答 ,我对其进行了修改并快速检查。 请注意,如果舍入到最接近的0.5的数字可能更大(例如333.69 => 333.5 ),请确保在投射时指定更多decimal精度(例如, select CAST(FLOOR(2 * 3.69) / 2 AS decimal(10, 1)) ),否则可能会发生溢出错误: Msg 8115, Level 16, S ...
-
精度是总共可以存储的位数。 因此,小数点左边的数字将是精度 - 比例。 例如,您的第一个示例将失败,因为您只允许小数点左边的三个位置: SELECT dbo.udfIsValidDECIMAL('2511.1',6,3) Precision is the number of digits that can be stored total. So the number to the left of the decimal will be precision - scale. For example, you ...
-
SQL Server舍入问题(SQL Server Rounding Issue)[2023-08-19]
ROUND()按预期工作。 你指定舍入到2个小数位,这就是你得到的。 返回一个数值,舍入为指定的长度或精度。 舍入表示5或以上的数字上升到最接近,小于5最接近。 所以, PRINT ROUND(1890.125000, 2) 产生1890.130000 而 PRINT ROUND(1890.124999, 2) 产生1890.120000 ROUND() is working as it was intended to. You specified to round to 2 decimal pla ... -
SELECT CASE WHEN DecimalValue - FLOOR(DecimalValue) >= 0.6 THEN DecimalValue + 1 - 0.6 ELSE DecimalValue END AS HHMMFormat FROM MyTable 显然+ 1 - 0.6可以用+ 0.4代替,但我认为+ 1 - 0.6更清楚地显示了加法的原因。 select floor(06 ...
-
尝试这个: declare @data as varchar(8) set @data = '00072330' print cast(@data as decimal) / 100 Try this: declare @data as varchar(8) set @data = '00072330' print cast(@data as decimal) / 100
-
SELECT '%'+LEFT(CAST((0.96774*100) as VARCHAR),5) SELECT '%'+LEFT(CAST((0.96774*100) as VARCHAR),5)
-
如何在SQL Server 2008 R2中将nvarchar值乘以十进制(How to multiply nvarchar values to decimal in SQL Server 2008 R2)[2022-05-02]
变化为 SELECT cast(convert(decimal(18,2), qty)+ convert(decimal(18,2), rate) as decimal(18,2)) FROM product where code='P0001' Changes as SELECT cast(convert(decimal(18,2), qty)+ convert(decimal(18,2), rate) as decimal(18,2)) FROM product where code='P0001' -
alter table
alter column float I changed my varable type decimal to float on .Net side and it solved. -
SELECT CONVERT(VARBINARY(8), cast(2716455883 as bigint)) 这是由于SQL Server在没有限定类型的情况下解释文字的方式。 看一下这个 select sql_variant_property(2716455883, 'basetype'); -- numeric select sql_variant_property(2716455883, 'precision'); -- 10 select sql_variant_property(271645 ...