當前位置:首頁 » 編程語言 » sql相減函數

sql相減函數

發布時間: 2023-04-21 16:26:22

A. 求sql語句。得出表中兩列相減的值

1、語句如下:

select A, B, A-B as C from 表1

2、計算列:

可以使用同一表中的其他列的表達式計算得來。表達式可以是非計算列的列名、常量、函數,也可以是用一個或多個運算符連接的上述元素的任意組合。表達式不能為子查詢。

語句中的A-B就是計算列,as C的意思是給這個計算列起個列名叫C。

只要符合上述規則,你可以任意組合欄位、運算符等,形成需要的計算列。

(1)sql相減函數擴展閱讀:

計算列應用范圍

計算列可用於選擇列表、WHERE 子句、ORDER BY 子句或任何可使用正則表達式的其他位置,但下列情況除外:

用作 CHECK、FOREIGN KEY 或 NOT NULL 約束的計算列必須標記為 PERSISTED。如果計算列的值由具有確定性的表達式定義,並且索引列中允許使用計算結果的數據類型,則可將該列用作索引中的鍵列,或者用作 PRIMARY KEY 或 UNIQUE 約束的一部分。

例如,如果表中含有整數列a和b,則可以對計算列a+b創建索引,但不能對計算列a+ DATEPART(dd,GETDATE()) 創建索引,因為在後續調用中,其值可能發生改變。

計算列不能作為 INSERT 或 UPDATE 語句的目標。

資料庫引擎基於使用的表達式自動確定計算列的為 Null 性。即使只有非空列,大多數表達式的結果也「認為」可為空值,因為下溢或溢出生成的結果也可能為空。使用帶AllowsNull屬性的 COLUMNPROPERTY 函數可查明表中任何計算列的為 Null 性。通過指定 ISNULL (check_expression,constant) 可以將可為空值的表達式轉換為不可為空值的表達式,其中,constant是可替換所有空結果的非空值.

網路.計算列

B. 如何使用sql語句將兩個時間相減,得到包含小數的天數

DateDiff 函數

返回 Variant (Long) 的值,表示兩個指定日期間的時間間隔數目。

語法

DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

DateDiff 函數語法中有下列命名參數:

部分 描述
interval 必要。字元串表達式,表示用來計算date1 和 date2 的時間差的時間間隔
Date1□date2 必要;Variant (Date)。計算中要用到的兩個日期。
Firstdayofweek 可選。指定一個星期的第一天的常數。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數。如果未予指定,則以包含 1 月 1 日的星期為第一周。

設置

interval 參數的設定值如下:

設置 描述
yyyy 年
q 季
m 月
y 一年的日數
d 日
w 一周的日數
ww 周
h 時
n 分鍾
s 秒

firstdayofweek 參數的設定值如下:

常數 值 描述
vbUseSystem 0 使用 NLS API 設置。
vbSunday 1 星期日(預設值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

常數 值 描述
vbUseSystem 0 用 NLS API 設置。
vbFirstJan1 1 從包含 1 月 1 日的星期開始(預設值)。
vbFirstFourDays 2 從第一個其大半個星期在新的一年的一周開始。
vbFirstFullWeek 3 從第一個無跨年度的星期開始。

C. sql如何用函數調用資料庫里的時間和當前時間相減,求大神代碼

SQL Server DATEDIFF() 函數
SQL Server Date 函數
定義和用法
DATEDIFF() 函數返回兩個日期之間的天數。
語法
DATEDIFF(datepart,startdate,enddate)

startdate 和 enddate 參數是合法的日期表達式。
datepart 參數可以是下列的值:

datepart
縮寫

年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小時 hh
分鍾 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
納秒 ns
實例
例子 1
使用如下 SELECT 語句:
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate

結果:

DiffDate

1
例子 2
使用如下 SELECT 語句:
SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate

結果:

DiffDate

-1

D. sql語句怎麼來對日期進行相加減

在sql server里可以使用:
where start_date <=
DateAdd(d,1,to_date('2005-12-09','yyyy-mm-dd'))
and completion_date >=
to_date('2005-12-09', 'yyyy-mm-dd') ;

oracle中沒有定義和sql server中一樣的DateAdd函數,
oracle可以通過interval 'n' year/month/day/hour/minute/second/second(p,s)
的方式來增減時間
下面是自己在oracle中寫的DateAdd函數
函數調用基本同sql server一樣, 不過datepart部分需要以字元串的方式輸入, 即
DateAdd(d,1,to_date('2005-12-09','yyyy-mm-dd'))
要改為
DateAdd('d',1,to_date('2005-12-09','yyyy-mm-dd'))

函數定義如下函數中的注釋是datepart的新說明, 與sql server中的略有不同)
create or replace function DATEADD( datepart varchar2, num number, indate date ) return date is
Result date;
v_sql varchar2(1000);
v_datepart varchar2(30);
v_ms varchar2(13);
begin
v_datepart := lower(datepart);
/*
Datepart Abbreviations
year yy, y
quarter qq, q
month mm, m
day dd, d
week wk, w
hour hh, h
minute mi, n
second ss, s
millisecond ms
*/
case
when v_datepart in ('year','yy','y') then
v_sql := 'select :1 + interval '''||num||''' year from al';
when v_datepart in ('quarter','qq','q') then
v_sql := 'select :1 + (interval ''3'' month) * '||num||' from al';
when v_datepart in ('month','mm','m') then
v_sql := 'select :1 + interval '''||num||''' month from al';
when v_datepart in ('week','wk','w') then
v_sql := 'select :1 + (interval ''7'' day) * '||num||' from al';
when v_datepart in ('day','dd','d') then
v_sql := 'select :1 + interval '''||num||''' day from al';
when v_datepart in ('hour','hh') then
v_sql := 'select :1 + interval '''||num||''' hour from al';
when v_datepart in ('minute','mi','n') then
v_sql := 'select :1 + interval '''||num||''' minute from al';
when v_datepart in ('second','ss','s') then
v_sql := 'select :1 + interval '''||num||''' second from al';
when v_datepart in ('millisecond','ms') then
v_ms := to_char(num/1000,'fm999999990.000');
v_sql := 'select :1 + interval '''||v_ms||''' second(9,3) from al';
else
RAISE_APPLICATION_ERROR(-20001, ''''||datepart||''' is not a recognized dateadd option.' );
end case;

execute immediate v_sql into Result using indate;

return(Result);

EXCEPTION
WHEN OTHERS THEN
RAISE ;

end DATEADD;

E. sql server語句怎麼實現兩個字元型相減

相減只有數字類型或日期類型可以操作,如果兩個字元型欄位存儲的是數字或者日期格式的內容,可對兩個欄位進行轉換,然後再作相減操作;

如:兩個字元型(數字)的欄位

ID1 ID2

1 2

2 4

執行語句:

selectcast(ID2asint)-cast(ID1asint)fromtablename;

如:兩個字元型(日期)的欄位

DATE1 DATE2

2015-08-01 2015-09-01

2015-07-01 2015-10-01

執行語句:

selectcast(DATE2asdatetime)-cast(DATE1asdatetime)fromtablename;

F. sql兩個時間相減

使用函數:DATEDIFF ( datepart , startdate , enddate )
select username,DATEDIFF (dd,date1,date2) from testtable where DATEDIFF (dd,date1,date2)>1;

G. sql結果集相減

SELECT * FROM ET_CHARGE_PILE_DATA_INFO where data_status='normal'

MINUS

SELECT * FROM ET_CHARGE_PILE_DATA_INFO where charge_pile_info_id in (

select id from ET_CHARGE_PILE_INFO where CHARGE_STATION_INFO_id in(

select id from ET_CHARGE_STATION_INFO where operator_id  in (

select id from ET_OPERATOR))) and data_status='normal'

前提是兩條SQL查詢出來的欄位一模一樣,則可以用 「MINUS」連接相減,得出差集

熱點內容
php的點餐系統源碼 發布:2024-11-01 20:13:53 瀏覽:714
拜占庭演算法 發布:2024-11-01 20:10:31 瀏覽:357
xcode編譯參數 發布:2024-11-01 20:00:04 瀏覽:665
蘋果5怎麼設置密碼鎖屏 發布:2024-11-01 19:54:55 瀏覽:124
寶塔上傳文件夾 發布:2024-11-01 19:39:50 瀏覽:257
java雲編譯器 發布:2024-11-01 19:34:24 瀏覽:385
免費源碼分享網 發布:2024-11-01 19:29:19 瀏覽:855
硬碟8mb緩存 發布:2024-11-01 19:20:02 瀏覽:192
抖音默認的青少年密碼是多少 發布:2024-11-01 19:18:36 瀏覽:906
電腦伺服器名字在哪裡找 發布:2024-11-01 19:13:27 瀏覽:2