sql 日期时间函数+格式转换

本文介绍SQL Server中的日期时间处理方法,包括转换函数to_date()和to_char()的使用,以及常用日期方法如DATENAME和DATEPART等。还提供了日期格式转换的例子。

<日期时间函数>
(可参考下列表格)

转换函数
to_date() 作用将字符类型按一定格式转化为日期类型:
具体用法:to_date(‘2004-11-27’,’yyyy-mm-dd’),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。
如;to_date(‘2004-11-27 13:34:43’, ‘yyyy-mm-dd hh24:mi:ss’)

多种日期格式:

YYYY:四位表示的年份
YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪
MM:01~12的月份编号
MONTH:九个字符表示的月份,右边用空格填补
MON:三位字符的月份缩写
WW:一年中的星期
D:星期中的第几天
DD:月份中的第几天
DDD:年所中的第几天
DAY:九个字符表示的天的全称,右边用空格补齐
HH,HH12:一天中的第几个小时,12进制表示法
HH24:一天中的第几个小时,取值为00~23
MI:一小时中的分钟
SS:一分钟中的秒
SSSS:从午夜开始过去的秒数

to_char():将日期转按一定格式换成字符类型
SQL> select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) time from dual;

1、常用日期方法
(1)DATENAME ( datepart ,date )
返回表示指定日期的指定日期部分的字符串。
SELECT DateName(day,Getdate()) –返回1

(2)DATEPART ( datepart , date )
返回表示指定日期的指定日期部分的整数。
SELECT DATEPART(year,Getdate()) –返回2016

(3)DATEADD (datepart , number, date )
返回给指定日期加上一个时间间隔后的新datetime 值。
SELECT DATEADD(week,1,GetDate()) –当前日期加一周后的日期

(4)DATEDIFF ( datepart , startdate , enddate )
返回跨两个指定日期的日期边界数和时间边界数。
SELECT DATEDIFF(month,’2006-10-11’,’2006-11-01’) –返回1

(5)DAY ( date )
返回一个整数,表示指定日期的天datepart 部分。
SELECT day(GetDate()) –返回1

(6)GETDATE()
以datetime 值的SQL Server 2005 标准内部格式返回当前系统日期和时间。
SELECT GetDate() –返回2016-04-01 20:37:56.233

(7)MONTH ( date )
返回表示指定日期的“月”部分的整数。
SELECT MONTH(GETDATE()) –返回11

(8)YEAR ( date )
返回表示指定日期的“年”部分的整数。
SELECT YEAR(GETDATE()) –返回2016

2、取特定日期
(1)获得当前日期是星期几
SELECT DateName(weekday,Getdate()) –星期五

(2)计算哪一天是本周的星期一
SELECT DATEADD(week, DATEDIFF(week,’1900-01-01’,getdate()), ‘1900-01-01’)
SELECT DATEADD(week, DATEDIFF(week,0,getdate()),0)

(3)当前季度的第一天
SELECT DATEADD(quarter, DATEDIFF(quarter,0,getdate()), 0)

(4)如何取得某个月的天数
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,’2006-02-03’)+1,0)))

(5)一个季度多少天

declare @m tinyint,@time smalldatetime

select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end

select @time=datename(year,getdate())+’-‘+convert(varchar(10),@m)+’-01’
select datediff(day,@time,dateadd(mm,3,@time))

(6)获得年月日(yyyy-MM-dd)

SELECT CONVERT(VARCHAR(10),GETDATE(),120)

3、其它

(1)–下面的示例将日期指定为数字。数据库引擎将0 解释为1900 年1 月1 日。
SELECT MONTH(0), DAY(0), YEAR(0)
–下面两句是等效的
SELECT DATENAME(WEEKDAY,0)
SELECT DATENAME(WEEKDAY,’1900-01-01’)

(2)SET DATEFIRST { number | @number_var }
将一周的第一天设置为从1 到7 的一个数字。

SET DATEFIRST 1 –表示一周的第一天是“星期一”
SELECT DATENAME(WEEKDAY,GETDATE())
SELECT DATEPART(weekday,GETDATE())
–查看当前设置情况
select @@DATEFIRST
(3)SET DATEFORMAT { format | @format_var }

设置用于输入datetime 或smalldatetime 数据的日期部分(月/日/年)的顺序。
…有效参数包括mdy、dmy、ymd、ydm、myd 和dym。
…该设置仅用在将字符串转换为日期值时的解释中。它不影响日期值的显示。
…SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。
…SET DATEFORMAT 将覆盖SET LANGUAGE 的隐式日期格式设置。
下面是例子:
– Set date format to year, day, month.
SET DATEFORMAT ydm;
GO
DECLARE @datevar DATETIME;
SET @datevar = ‘1998/31/12’;
SELECT @datevar AS DateVar;
GO
– Set date format to year, month, day.
SET DATEFORMAT ymd;
GO
DECLARE @datevar DATETIME;
SET @datevar = ‘1998/12/31’;
SELECT @datevar AS DateVar;
GO

(4)日期部分的列表

日期部分

缩写

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

weekday

dw

hour

hh

minute

mi, n

second

ss, s

millisecond

ms

数据类型

范围

精确度

datetime

1753 年 1 月 1 日到 9999 年 12 月 31 日
3.33 毫秒

smalldatetime

1900 年 1 月 1 日到 2079 年 6 月 6 日

1 分钟

<日期格式转换>
SQL Server中一些经常会用到的日期格式转换方法:

举例如下:
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
Select CONVERT(varchar(100), GETDATE(), 12): 060516
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
Select CONVERT(varchar(100), GETDATE(), 112): 20060516
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),’-‘,”),’ ‘,”),’:’,”)
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

其它不常用的日期格式转换方法:

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177

转自:http://www.cnblogs.com/daydayupanan/archive/2008/09/23/1296567.html

内容概要:本文提出了一种面向通信优化的微电网分布式二次电压频率调控与功率均分方法,结合Simulink仿真实现,旨在解决微电网中电压频率恢复与有功/无功功率精确分配的关键问题。通过引入混合动态事件触发机制,在确保控制精度的同时显著降低通信频率,有效缓解通信资源紧张问题,提升系统实时性与运行效率。该方法采用完全分布式的协同控制架构,摆脱对中央控制器的依赖,避免单点故障风险,增强系统的鲁棒性与可扩展性。仿真模型构建了包含多个分布式发电单元(DG)的微电网系统,详细模拟其动态响应过程,验证了所提策略在不同负载扰动、通信延迟及网络拓扑变化等复杂工况下的有效性,成功实现了电压频率的快速无静差恢复与功率的精确均分,兼顾了控制性能与通信成本的双重优化。; 适合人群:具备电力系统、自动控制理论或新能源并网技术等相关专业背景,熟悉Matlab/Simulink仿真环境,从事微电网控制、分布式能源系统、智能配电网或电力电子控制等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①作为微电网二次控制算法的教学案例与科研仿真平台;②为分布式能源系统的电压频率稳定控制与功率均衡分配提供先进的算法设计与性能验证方案;③支持对事件触发控制、通信优化策略在实际电力系统中的应用效果进行评估、改进与推广。; 阅读建议:建议结合提供的Simulink模型与配套代码进行动手实践,重点剖析控制器的设计逻辑、事件触发条件的设定原则以及通信机制的实现方式,通过主动修改负载参数、调整通信拓扑结构等方式,深入探究系统在不同运行条件下的动态特性与鲁棒性表现。
当前位置:首页 所有数据 企业数据 正文 600多家商业银行数据大全 2007-2024年 zh899_mary 2026-04-22 其他数据 3.74k 01、数据介绍 数据包括全国600多家银行数据,包括上市银行和非上市银行基本信息,资产负债、利润、财务指标、现金流量表、流动性风险、市场风险、信用风险、存款结构等数据表。 数据名称:600多家商业银行数据大全 数据年份:2007-2024年 02、数据指标 银行代码 银行中文简称 统计截止日期 报表类型 股票代码 存款总额 公司存款 公司定期存款 公司活期存款 个人存款 个人定期存款 个人活期存款 保证金存款 公司存款占比 公司定期存款占比 公司活期存款占比 个人存款占比 个人定期存款占比 个人活期存款占比 保证金存款占比 银行代码 股票代码 统计截止日期 银行中文简称 核心一级资本 核心一级资本扣除项目 核心一级资本净额 附属资本净额 其他一级资本 一级资本净额 二级资本 其中:享受优惠政策可计入部分 二级资本扣除项目 二级资本净额 资本净额 信用风险加权资产 市场风险加权资产 操作风险加权资产 其他 风险加权资产合计 资本充足率 一级资本充足率 核心资本充足率 加权风险资产收益率 风险加权资产对总资产比率 风险加权资产对生息资产比率 风险加权资产对总贷款比率 穆迪评级-中国主权 穆迪评级-银行 穆迪评级展望 标准普尔评级-中国主权 标准普尔评级-银行 标准普尔评级展望 惠誉评级-中国主权 惠誉评级-银行 惠誉评级展望 银行代码 股票代码 统计截止日期 银行中文简称 利率风险敏感度 累计外汇头寸敞口比例 风险资本利润率 杠杆率 资产利润率 资本利润率 成本收入比例 银行代码 股票代码 统计截止日期 银行中文简称 流动性比例(本币) 流动性比例(外币) 流动性比例(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值