SQL必知必会(二)函数、子查询

SQL必知必会(二)函数、子查询,第1张

#文本处理函数

UPPER()     --大写

LOWER()    --小写

SOUNDEX()   --读音类似

LENGTH()    --字符串长度

#日期和时间处理函数

SELECT order_code

FROM order_table

WHERE DATEPART(yy,order_date)=2012

#to_char()函数提取日期成分,MySQL可用year()函数提取年份

SELECT order_num

FROM order_table

WHERE to_number(to_char(order_date,'YYYY'))=2012    --to_char提取日期成分to_number转化为数值

SELECT order_num

FROM order_table

WHERE order_date BETWEEN to_date('01-01-2012') AND to_date('12-31--2012')    --字符串转日期

#数值处理函数

ABS()    --绝对值

COS()    --余弦

EXP()    --指数值

PI()   --圆周率

SIN()    --正弦

SQRT()    --平方根

TAN()    --正切

#平均数AVG()

SELECT AVG(a) AS avg_a

FROM tableA

WHERE a='DLL01'

#计数

SELECT COUNT(*)  AS num_cust              --对所有行计数,不管是否NULL值

FROM tableA

SELECT COUNT(a) AS num_a          --指定了列名,会忽略NULL值

FROM tableA

#最值

MAX()和MIN(),忽略NULL值

#总值SUM(),忽略NULL值

SELECT SUM(price*quantity) AS total_price

FROM tableA

WHERE order_code=20008

#以上聚集函数只包含不同值

SELECT AVG(DISTINCT order_price) AS avg_price

FROM tableA

WHERE id='DLL01'

两个子句:GROUP BY 和 HAVING

#GROUP BY创建分组HAVING过滤分组

SELECT vend_id, COUNT(*) AS num_prods

FROM tableA

WHERE price>=4

GROUP BY vend_id

HAVING COUNT(*)>=2   

ORDER BY price    --GROUP BY在WHERE之后在ORDER   BY之前

SELECT

FROM

WHERE

GROUP BY

HAVING

ORDER BY

#子查询顺序为从内而外

SELECT order_num 

FROM tableA

WHERE id='DLL01';

(输出20007和20008)

SELECT id

FROM tableB

WHERE order_num IN(20007,20008);

#合并为子查询。只能查询单个列

SELECT id

FROM tableB

WHERE order_num IN (SELECT order_num FROM tableA WHERE id='DLL01')

SELECT  cust_name,

                cust_state

                (SELECT COUNT(*) 

                 FROM Orders

                WHERE Orders.cust_id=Customers.cust_id) AS orders

FROM Customers

ORDER BY cust_name

#Orders.cust_id=Customers.cust_id完全限定列名,在两张表中名字相同列拿出来比较,防止歧义

mysql里时间型别为timestamp 怎么将它撷取只显示年月日 select date_format(date ,'%Y-%m-%d' ) from talbe_a

SQLserver怎样储存格式为年月日的时间型别

您好:

正常我们通过DateTime格式储存。

通过

SELECT CONVERT(NVARCHAR(15),时间栏位,23)

来获取需要的格式。

或者直接储存成Date型别。

sql时间型别显示有中文的年月日吗,比如说显示08年1月1日

自己写个转换函式就行,关于日期格式,w3school的介绍你看看,给你连结

:w3school../sql/func_convert.asp

另外给你获取年月日的方式

--getdate() 获取当前日期--获取年select datepart(yyyy,getdate())--获取月select datepart(mm,getdate())--获取日select datepart(dd,getdate())--将getdate()替换成你的日期就可以获取到了--另外:datename这个函式也可以获取年月日

关于hibernate储存时间型别只有年月日没有

这种一般不好处理,通常处理办法就是让资料库你处理时间,在存入时直接让资料库生成时间就没有问题了,或者在存入资料时去资料库查询下当前的资料库时间.

Asp撷取时间年月日

year(now) month(now) day(now)

excel 只显示时间 不显示年月日

那你输入的是时间格式吗?

ctrl + ;是 记录当前时间的 你可以试一试

设定单元格格式会显示你要的结果

SQL2005怎么撷取datetime型别栏位的年月日,并以撷取后的(年月日)栏位排序

SELECT

CONVERT(varchar(100), time, 111) AS time ,

COUNT(CONVERT(varchar(100), time, 111) ) AS count

FROM 表名

GROUP BY CONVERT(varchar(100), time, 111)

ORDER BY CONVERT(varchar(100), time, 111)

MYSQL怎么把日期格式只显示年月日?

select date(column) from table

select date("2010-08-17 19:08:28")显示是"2010-08-17"

select substring(column,1,11) from table

select substring("2010-08-17 19:08:28",1,11)显示是"2010-08-17 19"

ORACLE语句撷取时间型别的时分

SELECT substr(to_char(sysDATE, 'YYYY/MM/DD HH24:MI:SS'), 12, 5) FROM dual

oracle 通过 如何撷取 年月日(date)、年月日时分秒(timestamp)中的年月,,形如:‘2010

是给使用者使用表空间的许可权吧。

改表名使用: alter table table_name1 rename to table_name2

查时间并格式化输出时间格式:

select to_char(sysdate, 'yyyy/mm/dd') from dual


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7342420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存