数据库SqlServer使用笔记

一、常用SQL语句

SqlServer查询数据库时-日期格式

Select CONVERT(varchar(45), GETDATE(), 0): 01 18 2020  4:36PM 
Select CONVERT(varchar(45), GETDATE(), 1): 01/18/20 
Select CONVERT(varchar(45), GETDATE(), 2): 20.01.18 
Select CONVERT(varchar(45), GETDATE(), 3): 18/01/20
Select CONVERT(varchar(45), GETDATE(), 4): 18.01.20 
Select CONVERT(varchar(45), GETDATE(), 5): 18-01-20 
Select CONVERT(varchar(45), GETDATE(), 6): 18 01 20 
Select CONVERT(varchar(45), GETDATE(), 7): 01 18, 20 
Select CONVERT(varchar(45), GETDATE(), 8): 16:38:08 
Select CONVERT(varchar(45), GETDATE(), 9): 01 18 2020  4:38:17:420PM 
Select CONVERT(varchar(45), GETDATE(), 10): 08-24-18 
Select CONVERT(varchar(45), GETDATE(), 11): 18/08/24 
Select CONVERT(varchar(45), GETDATE(), 12): 180824 
Select CONVERT(varchar(45), GETDATE(), 13): 24 08 2018 08:22:46:862 
Select CONVERT(varchar(45), GETDATE(), 14): 08:22:46:967 
Select CONVERT(varchar(45), GETDATE(), 20): 2018-08-24 08:22:47 
Select CONVERT(varchar(45), GETDATE(), 21): 2018-08-24 08:22:47.157 
Select CONVERT(varchar(45), GETDATE(), 22): 08/24/18 08:22:47 AM 
Select CONVERT(varchar(45), GETDATE(), 23): 2018-08-24 
Select CONVERT(varchar(45), GETDATE(), 24): 08:22:47 
Select CONVERT(varchar(45), GETDATE(), 25): 2018-08-24 08:22:47.350 
Select CONVERT(varchar(45), GETDATE(), 100): 08 24 2018 08:22AM 
Select CONVERT(varchar(45), GETDATE(), 101): 08/24/2018 
Select CONVERT(varchar(45), GETDATE(), 102): 2018.08.24 
Select CONVERT(varchar(45), GETDATE(), 103): 24/08/2018 
Select CONVERT(varchar(45), GETDATE(), 104): 24.08.2018 
Select CONVERT(varchar(45), GETDATE(), 108): 24-08-2018 
Select CONVERT(varchar(45), GETDATE(), 118): 24 08 2018 
Select CONVERT(varchar(45), GETDATE(), 107): 08 24, 2018 
Select CONVERT(varchar(45), GETDATE(), 108): 08:22:49 
Select CONVERT(varchar(45), GETDATE(), 109): 08 24 2018 08:22:49:153AM 
Select CONVERT(varchar(45), GETDATE(), 110): 08-24-2018 
Select CONVERT(varchar(45), GETDATE(), 111): 2018/08/24 
Select CONVERT(varchar(45), GETDATE(), 112): 20180824 
Select CONVERT(varchar(45), GETDATE(), 113): 24 08 2018 08:22:49:426 
Select CONVERT(varchar(45), GETDATE(), 114): 08:22:47:375 
Select CONVERT(varchar(45), GETDATE(), 120): 2018-08-24 08:22:47 
Select CONVERT(varchar(45), GETDATE(), 121): 2018-08-24 08:22:47.655 
Select CONVERT(varchar(45), GETDATE(), 126): 2018-08-24T08:22:47.125

//仅用dateadd()函数替换了原来的getdate()函数,其中getdate()获取的当前日期为2020-01-18
//这个为当前日期加上7天

Select CONVERT(Varchar(45),dateadd(day,7,getdate()),23):结果为2020-01-25
Select CONVERT(Varchar(45),dateadd(dd,7,getdate()),23):结果为2020-01-25

//当前日期加上7个月

Select CONVERT(Varchar(45),dateadd(month,7,getdate()),23):结果为2020-08-18
Select CONVERT(Varchar(45),dateadd(mm,7,getdate()),23):结果为2020-08-18

//若如上日期加上六个月,则结果为2019-02-28

//当前日期加上7年

Select CONVERT(Varchar(45),dateadd(year,7,getdate()),23):结果为2027-01-18
Select CONVERT(Varchar(45),dateadd(yy,7,getdate()),23):结果为2027-01-18

复制表结构:

SELECT * INTO  T_WMS_SEND  from T_SMS_SEND WHERE 1=2;

在这里插入图片描述

Mm:不能写成mm,否则日期报错!
在这里插入图片描述

小写的hh表示的是12小时制
大写的HH表示的是24小时制

查找锁死进程

select request_session_id spid,OBJECT_NAME(resource_associated_entity_id)  T_tablename
from  sys.dm_tran_locks  where  resource_type='OBJECT'
order  by  request_session_id;

杀死进程:

 kill  pid;

数据库优化:

  1. 查询百万级数据量表DT_ELEC_C0C_F167,总共220万条记录,查询花了5分钟。
    加了索引sn_meter后,半分钟就结束了。
select top 1  balance,dt.sn,the_month,the_day,DEVICE_DATE  from  DT_ELEC_C0C_F167 dt where dt.sn_meter ='' and DEVICE_DATE>(select CONVERT(varchar(45), GETDATE(), 23)) order by device_date desc;

在这里插入图片描述

再加一个DEVICE_DATE索引:

CREATE NONCLUSTERED INDEX [dt_elec_c0c_167_ddate]
ON [dbo].[DT_ELEC_C0C_F167] (
  [DEVICE_DATE] ASC
)

查询时间减半!
继续优化:将select CONVERT(varchar(45), GETDATE(), 23)变为常量。

消息记录表也加索引T_WX_SMS_RESULT。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oyezitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值