`
IThead
  • 浏览: 424971 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server —— convert用法

 
阅读更多
convert(varchar(10),字段名,转换格式)


sybase下convert函数第三个参数(时间格式)


比如:
1.select user_id,convert(varchar(10),dayts,11) as dates from tb_user    (sybase下及sql server下语句)

2.select to_char(sysdate,'yy/mm/dd') as d from dual    (oracle下语句)

转换格式:
0或100 month dd yyyy hh:miampm
1 mm/dd/yy
2 yy.mm.dd
3 dd/mm/yy
4 dd.mm.yy
5 dd-mm-yy
6 dd month yy
7 month dd,yy
8 hh:mi:ss
9或109 month dd yyyy hh:mi:ss:mmmampm
10 mm-dd-yy
11 yy/mm/dd
12 yymmdd
还有100、101、102...和上面的对应,只不过将yy变为yyyy.
101 mm/dd/yyyy
102 yyyy.mm.dd
103 dd/mm/yyyy
104 dd.mm.yyyy
105 dd-mm-yyyy
106 dd month yyyy
107 month dd,yyyy
108 hh:mi:ss
110 mm-dd-yyyy
111 yyyy/mm/dd
112 yyyymmdd



也可以把几种格式合在一起:

select rtrim(convert(char,getdate(),111))+''+(convert(char,getdate(),108))  -- yyyy/mm/dd hh:mi:ss




convert(varchar(10),字段名,转换格式)
cast(cad.id as varchar)  //把cad表的id字段转换为varchar字段,其中id字段为整型
比如:
select user_id,convert(varchar(10),date,11) as date from tb_user


dateadd(日期部分,数值表达式,日期)


select dateadd(dd,10,time) from testDate  //以日子计算,在当前time时间加10天



转换格式:
0或100 month dd yyyy hh:miampm
1 mm/dd/yy
2 yy.mm.dd
3 dd/mm/yy
4 dd.mm.yy
5 dd-mm-yy
6 dd month yy
7 month dd,yy
8 hh:mi:ss
9或109 month dd yyyy hh:mi:ss:mmmampm
10 mm-dd-yy
11 yy/mm/dd
12 yymmdd
101 mm/dd/yyyy
102 yyyy.mm.dd
103 dd/mm/yyyy
104 dd.mm.yyyy
105 dd-mm-yyyy
106 dd month yyyy
107 month dd,yyyy
108 hh:mi:ss
110 mm-dd-yyyy
111 yyyy/mm/dd
112 yyyymmd





Sybase时间日期函数
2010年05月09日 星期三 下午 06:54

Sybase日期函数
--------------------------------------------------------------------------------

日期函数
getdate()
得到当前时间,可以设置得到各种时间格式.
datepart(日期部分,日期)
取指定时间的某一个部分,年月天时分秒.
datediff(日期部分,日期1,日期2)
计算指定的日期1和日期2的时间差多少.
dateadd(日期部分,数值表达式,日期)
计算指定时间,再加上表达式指定的时间长度.

--取时间的某一个部分


select datepart(yy,getdate()) --year
select datepart(mm,getdate()) --month
select datepart(dd,getdate()) --day
select datepart(hh,getdate()) --hour
select datepart(mi,getdate()) --min
select datepart(ss,getdate()) --sec



--取星期几


set datefirst 1
select datepart(weekday,getdate()) --weekday



--字符串时间


select getdate() -- '10/11/12'
select convert(char,getdate(),101) -- '09/27/2010'
select convert(char,getdate(),102) -- '2010.11.12'
select convert(char,getdate(),103) -- '27/09/2010'
select convert(char,getdate(),104) -- '27.09.2010'
select convert(char,getdate(),105) -- '27-09-2010'
select convert(char,getdate(),106) -- '27 Sep 2010'
select convert(char,getdate(),107) --'Sep 27, 2010'
select convert(char,getdate(),108) --'11:16:06'
select convert(char,getdate(),109) --'Sep 27 2010 11:16:28:746AM'
select convert(char,getdate(),110) --'09-27-2010'
select convert(char,getdate(),111) --'2010/09/27'
select convert(char,getdate(),112) --'20100927'
select rtrim(convert(char,getdate(),102))+' '+(convert(char,getdate(),108)) -- '2010.11.12 11:03:41'







在sybase数据库中,假设表A的时间段时间为2005-8-19 4:20,
但是在用select语句搜出后结果为“Aug 19 2005  4:20:04 ”
请问怎么才能转换成2005-8-9 4:20这种格式呢。


2BeSybPro如何得出自己需要的时间格式

select substring(convert(char(8),getdate(),112),1,4)+'-'+substring(convert(char(8),getdate(),112),5,2)+'-'+substring(convert(char(8),getdate(),112),7,2)+''+convert(char(5),getdate(),108)




select substring(convert(char(8),getdate(),112),1,4)+'-'+substring(convert(char(8),getdate(),112),5,2)+'-'+substring(convert(char(8),getdate(),112),7,2)+''+convert(char(8),getdate(),108)




--整数时间


select convert(int,convert(char(10),getdate(),112)) -- 20031112
select datepart(hh,getdate())*10000 + datepart(mi,getdate())*100 + datepart(ss,getdate()) -- 110646



--时间格式 "YYYY.MM.DD HH:MI:SS" 转换为 "YYYYMMDDHHMISS"


declare @a datetime,@tmp varchar(20),@tmp1 varchar(20)
select @a=convert(datetime,'2004.08.03 12:12:12')
select @tmp=convert(char(10),@a,112)
select @tmp
select @tmp1=convert(char(10),datepart(hh,@a)*10000 + datepart(mi,@a)*100 + datepart(ss,@a))
select @tmp1
select @tmp=@tmp+@tmp1
select @tmp




--当月最后一天


declare
@tmpstr varchar(10)
@mm int,
@premm int,
@curmmlastday varchar(10)
begin
select @mm=datepart(month,getdate())--当月
select @premm=datepart(month,dateadd(month,-1,getdate())) --上个月
if (@mm>=1 and @mm<=8)
select @tmpstr=convert(char(4),datepart(year,getdate()))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
else if (@mm>=9 and @mm<=11)
select @tmpstr=convert(char(4),datepart(year,getdate()))+'.'+convert(char(2),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
else
select @tmpstr=convert(char(4),datepart(year,dateadd(year,1,getdate())))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
select @curmmlastday=convert(char(10),dateadd(day,-1,@tmpstr),102) --当月最后一天
end



declare @st datetime,
         @ft datetime

         set @st = dateadd(dd,-day(dateadd(month,-1,getdate()))+1,dateadd(month,-1,getdate())),    --上个月一号
      @ft = dateadd(dd,-day(getdate())+1,getdate())     ---本月一号
        select rtrim(convert(char,@st,111))+''+(convert(char,@st,108))  -- yyyy/mm/dd hh:mi:ss
        select rtrim(convert(char,@ft,111))+''+(convert(char,@ft,108))  -- yyyy/mm/dd hh:mi:ss






---转化为数据格式20091011181960

select cast(datepart(yy,getdate()) as varchar)+right('00'+cast(datepart(mm,getdate())as varchar),2)+right('00'+cast(datepart(dd,getdate())as varchar),2)+
2> right('00'+cast(datepart(hh,getdate())as varchar),2)+right('00'+cast(datepart(dd,getdate())as varchar),2)+right('00'+cast(datepart(ss,getdate())as varchar),2)




*************************


CONVERT 函数 [数据类型转换]

--------------------------------------------------------------------------------

功能 返回转换成提供的数据类型的表达式。

语法 CONVERT ( data type, expression_r_r_r_r_r_r [ , format-style ] )

参数 data type    表达式将转换成的数据类型。

expression_r_r_r_r_r_r    要转换的表达式。

format-style    对于将字符串转换为日期或时间数据类型以及相反的转换过程,format-style 是描述要使用的日期格式字符串的样式代码。 format-style 参数的值具有下列含义:

不含世纪 (yy) 含世纪 (yyyy) 输出
- 0 或 100 Mmm dd yyyy hh:nn:ss:sss AM(或 PM)
1 101 mm/dd/yy[yy]
2 102 [yy]yy.mm.dd
3 103 dd/mm/yy[yy]
4 104 dd.mm.yy[yy]
5 105 dd-mm-yy[yy]
6 106 dd Mmm yy[yy]
7 107 Mmm dd, yy[yy]
8 108 hh:nn:ss
- 9 或 109 Mmm dd yyyy hh:nn:ss:sssAM(或 PM)
10 110 mm-dd-yy[yy]
11 111 [yy]yy/mm/dd
12 112 [yy]yymmdd
13 113 dd Mmm yyy hh:nn:ss:sss(24 小时制,欧洲缺省时间 + 毫秒,4 位数年份)
14 114 hh:nn:ss:sss(24 小时制)
20 120 yyyy-mm-dd hh:nn:ss:sss(24 小时制,ODBC 规范,4 位数年份)
21 121 yyyy-mm-dd hh:nn:ss.sss(24 小时制,ODBC 规范加毫秒,4 位数年份)


ps:在convert的有些转换类型,在sql service和 sybase中输出的是不一样的结果。
0
0
分享到:
评论

相关推荐

    sqlserver CONVERT()函数用法小结

    CONVERT的使用方法: 格式: CONVERT(data_type,expression[,style]) 说明: 此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar) 相互转换的时候才用到. 例子: SELECT CONVERT...

    SQL.Server.2008编程入门经典(第3版).part2.rar

    第1章 RDBMS基础:SQLServer数据库的构成 1.1 数据库对象概述 1.1.1 数据库对象 1.1.2 事务日志 1.1.3 最基本的数据库对象:表 1.1.4 文件组 1.1.5 数据库关系图 1.1.6 视图 1.1.7 存储过程 1.1.8 用户自定义函数 ...

    SQL.Server.2008编程入门经典(第3版).part1.rar

    第1章 RDBMS基础:SQLServer数据库的构成 1.1 数据库对象概述 1.1.1 数据库对象 1.1.2 事务日志 1.1.3 最基本的数据库对象:表 1.1.4 文件组 1.1.5 数据库关系图 1.1.6 视图 1.1.7 存储过程 1.1.8 用户自定义函数 ...

    SQLServer2005数据库考试试卷

    ### SQL Server 2005 数据库考试知识点详解 #### 一、单选题解析 1. **根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:** - **选项分析:** - A:关系模型并不局限于只表现一对多的关系,它...

    王牌9 优秀程序员之路——C# 开发经验及技巧大汇总

    使用 `SqlConnection` 对象可以轻松地与 SQL Server 数据库建立连接。首先需要添加 `System.Data.SqlClient` 命名空间,然后创建 `SqlConnection` 对象并设置其连接字符串。例如: ```csharp using System.Data....

    SQL函数大全

    下面将详细介绍这些SQL函数的使用方法及其实现的功能: ### 1. 日期时间函数 #### DATEADD - **语法**:`DATEADD(datepart, number, date)` - **功能**:向指定的日期添加或减去指定的时间间隔。 - `MM`: 月份 -...

    Excel导入SQL数据库完整代码

    本文将详细介绍一个具体的案例——如何通过编程方式实现Excel数据向SQL数据库的导入,并对代码进行逐行解析,帮助读者更好地理解整个过程。 #### 二、准备工作 1. **开发环境**:本示例基于.NET Framework进行开发...

    优秀程序员之路——C#_开发经验及技巧大汇总

    在C#中,可以使用`Convert.ToString()`方法轻松地将十进制数转换为十六进制字符串: ```csharp int num = 123; string str = Convert.ToString(num, 16); // "7b" ``` 相反,也可以使用`Convert.ToInt32()`将十六...

    在实体框架中读取sql_variant

    标题中的“在实体框架中读取sql_variant”指的是在使用微软的ORM框架——实体框架(Entity Framework)处理数据库操作时,如何有效地读取和处理`sql_variant`数据类型的问题。`sql_variant`是SQL Server中的一种特殊...

    SQL查询效率:100w数据查询只需要1秒钟

    - **数据库**:SQL Server 2000 接下来创建一张表`t_userinfo`用于存储用户信息: ```sql CREATE TABLE t_userinfo ( userid INT IDENTITY(1,1) PRIMARY KEY NONCLUSTERED, nick VARCHAR(50) NOT NULL DEFAULT ''...

    求某段时间内某一星期日期的天数

    这段描述进一步明确了任务的具体实现方式——使用 SQL Server 的内置函数来完成这一计算。这意味着我们将利用 SQL Server 提供的功能来编写相应的存储过程或函数,以自动化地计算出所需的结果。 ### 知识点详解 ##...

    优秀程序员之路——C# 开发经验及技巧大汇总

    在C#中,使用`SqlConnection`类可以轻松地与SQL Server数据库建立连接。以下是一个简单的示例: ```csharp using System.Data.SqlClient; string connectionString = "user id=sa;password=sinofindb;initial ...

    年度+季度 进行查询

    在SQL Server中,可以使用`DATEADD`和`DATEDIFF`函数来处理日期和时间。例如: ```sql SELECT * FROM tb WHERE date_column &gt;= DATEADD(Quarter, 3, '2008-01-01') AND date_column (Quarter, 2, '2010-01-01');...

    C# 文件保存到数据库中或者从数据库中读取文件

    主要涉及了两种数据库类型——SQL Server和Access,并分别给出了具体的示例代码。需要注意的是,在实际开发过程中还需要考虑错误处理、安全性等问题,确保应用程序的健壮性和安全性。此外,根据实际需求选择合适的...

Global site tag (gtag.js) - Google Analytics