当前位置:首页 » 编程语言 » sqlserverconvert函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlserverconvert函数

发布时间: 2022-06-09 03:51:28

sql Server函数中 convert(char(10),rq,21)>具体代表什么含义

把日期转成字符串
char(10),表示转换后的字符串长度为10
rq,就是被转换的日期参数
21代表格式

convert的用法,及日期格式,见下:
语法
使用 CONVERT:

CONVERT (数据类型[长度], 表达式 [, 日期格式样式])

转换为日期型时可使用日期格式样式
不带世纪数位 (yy) 带世纪数位 (yyyy) 标准 输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

Ⅱ SQL Server convert函数转换整数问题

select right(replicate('0', 1) + convert(varchar(10),1), 2)
楼主你可以直接运行上面的看看,是可以达到效果的。
convert(varchar(10),1)这个不用说你明白的,replicate('0', 1)是左位补0,第二个参数是控制要补几个0。
剩下的楼主看也看明白了吧

Ⅲ sql server的时间转换问题

sqlserver时间转换一般用convert函数。
1、select CONVERT(varchar, getdate(), 120 )
结果:2004-09-12 11:06:08
2、select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
结果:20040912110608
3、select CONVERT(varchar(12) , getdate(), 111 )
结果:2004/09/12
4、select CONVERT(varchar(12) , getdate(), 112 )
结果:20040912
5、select CONVERT(varchar(12) , getdate(), 102 )
结果:2004.09.12
6、select CONVERT(varchar(12) , getdate(), 101 )
结果:09/12/2004
7、select CONVERT(varchar(12) , getdate(), 103 )
结果:12/09/2004
8、select CONVERT(varchar(12) , getdate(), 104 )
结果:12.09.2004
9、select CONVERT(varchar(12) , getdate(), 105 )
结果:12-09-2004
10、select CONVERT(varchar(12) , getdate(), 106 )
结果:12 09 2004
11、select CONVERT(varchar(12) , getdate(), 107 )
结果:09 12, 2004
12、select CONVERT(varchar(12) , getdate(), 108 )
结果:11:06:08
13、select CONVERT(varchar(12) , getdate(), 109 )
结果:09 12 2004 1
14、select CONVERT(varchar(12) , getdate(), 110 )
结果:09-12-2004
15、select CONVERT(varchar(12) , getdate(), 113 )
结果:12 09 2004 1
16、select CONVERT(varchar(12) , getdate(), 114 )
结果:11:06:08.177
17、select getdate()
结果:2003-12-28 16:52:00.107
18、select convert(char(8),getdate(),112)
结果:20031228
19、select convert(char(8),getdate(),108)
结果:16:52:00

Ⅳ sql server中的怎么把数值型转换为字符串

有两种。

1.转换(int,字段名)

例如:选择convert(int,'3')

选择cast('3'作为int)

一般来说,没有必要将字符串转换为数字类型,如果你需要比较两个字段是相等的,但为字符串类型字段,类型,用“=”来比较这两个值是相等的,SQLSERVER将自动将字符串转换为一个数字,然后比较。

(4)sqlserverconvert函数扩展阅读:

注意事项:

这两个函数都执行强制转换,但是语法不同。据说有一些不同的转换,但我更习惯于使用转换函数,它更像一个函数的语法一方面,可以指定的格式转换,将时间和价值转换为一个字符串。

对于数据类型的确切值,转换后的字符串是我们存储的值。如:

声明@iintset@i=123456789print'test:'+转换(varchar(20),@i)

输出是:test:123456789

对于具有近似值的数据类型,情况就不那么简单了。

声明@ifloatset@i=123456789print'test:'+转换(varchar(20),@i):test:1.23457e+008

Ⅳ SQL SERVER中强制类型转换cast和convert的区别

将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。 语法
使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 参数
expression 是任何有效的 Microsoft SQL Server" 表达式。有关更多信息,请参见表达式。 data_type 目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。 length nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 style 日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。

将某种数据类型的表达式显式转换为另一种数据类型。有关可用的数据类型的更多信息,请参见数据类型。日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。当转换为字符数据时输出。
隐性转换对于用户是不可见的。
SQL Server 自动将数据从一种数据类型转换成另一种数据类型。例如,如果一个 smallint 变量和一个 int 变量相比较,这个 smallint 变量在比较前即被隐性转换成 int 变量。 显式转换使用 CAST 或 CONVERT 函数。
CAST 和 CONVERT 函数将数值从一个数据类型(局部变量、列或其它表达式)转换到另一个数据类型。例如,下面的 CAST 函数将数值 $157.27 转换成字符串 ''$157.27'':CAST ( $157.27 AS VARCHAR(10) )
CAST 函数基于 SQL-92 标准并且优先于 CONVERT。 当从一个 SQL Server 对象的数据类型向另一个转换时,一些隐性和显式数据类型转换是不支持的。例如,nchar 数值根本就不能被转换成 image 数值。nchar 只能显式地转换成 binary,隐性地转换到 binary 是不支持的。nchar 可以显式地或者隐性地转换成 nvarchar。 当处理 sql_variant 数据类型时,SQL Server 支持将具有其它数据类型的对象隐性转换成 sql_variant 类型。然而,SQL Server 并不支持从 sql_variant 数据隐性地转换到其它数据类型的对象

Ⅵ sql语句中的convert是什么意思

CONVERT() 函数是把日期转换为新数据类型的通用函数。
CONVERT() 函数可以用不同的格式显示日期/时间数据。
语法
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

Ⅶ sql server中convert函数问题

转换是临时的,仅供筛选记录使用,select语句肯定不会改变表结构的
另外,查询分析器里显示的也没有转换,如果
select 姓名, convert(char(20),总学分) as 总学分
from xs1
where convert(char(20),总学分) like '8_'
才是将显示的转换,但表结构也是不会变的,仅是显示而已

Ⅷ sql server 2005 日期的convert函数

select CONVERT(Datetime,'20080701',120)

declare @t Datetime
select @t = CONVERT(Datetime,'20080701',120)
print(CONVERT(varchar(30),@t,120))

有问题的地方:
print(@date) 直接print一个没有转换过的Datetime格式,当然永远都是服务器默认格式了.

而且字符串'200807'也不满足转换要求,转出来的东西估计看不明白.

Ⅸ SQL CONVERT()函数的问题

第三十一章 SQL函数 CONVERT
将给定表达式转换为指定数据类型的函数。
CONVERT(datatype,expression[,format-code])

{fn CONVERT(expression,datatype)}
参数
expression - 要转换的表达式。
datatype - 要将表达式转换为的数据类型。
format - 可选-指定日期和时间格式的整数代码,用于在日期/时间/时间戳数据类型和字符数据类型之间进行转换。 此参数仅用于通用标量语法形式。
描述
这里描述了CONVERT函数的两种不同实现。 两者都将一种数据类型中的表达式转换为另一种数据类型中的相应值。 两者都执行日期和时间转换。
注意:这两个CONVERT实现中的参数以不同的顺序表示。 第一个是与MS SQL Server兼容的通用 IRIS标量函数,它接受三个参数。 第二个是带有两个参数的 ODBC标量函数。 下面的文本将分别处理这两种形式的CONVERT。
CONVERT(datatype,expression)支持流数据的转换。 例如,可以将字符流字段的内容转换为数据类型为VARCHAR的字符串。
{fn CONVERT(expression,datatype)}不支持流数据的转换; 指定要表达的流字段将导致SQLCODE -37错误。
为两个版本的CONVERT指定一个无效值将导致SQLCODE -141。
如果表达式没有定义的数据类型(例如ObjectScript提供的主机变量),则其数据类型默认为字符串数据类型。
CONVERT(datatype,expression,format-code)
可以通过执行VARCHAR-to-VARCHAR转换来截断字符串,指定输出字符串长度小于表达式字符串长度。
在使用CONVERT(或CAST)时,如果字符数据类型(如CHAR或VARCHAR)没有指定长度,则默认的最大长度为30个字符。 如果二进制数据类型(如binary或VARBINARY)没有指定长度,则默认的最大长度为30个字符。 否则,这些没有指定长度的数据类型将被映射到一个1个字符的MAXLEN,如data types表所示。
可以执行BIT数据类型转换。 允许的值为1、0或NULL。 如果指定任何其他值,IRIS将发出SQLCODE -141错误。 在下面的嵌入式SQL示例中,两者都是一个NULL的BIT转换:
ClassMethod Convert()
{
s a=""
&sql(
SELECT CONVERT(BIT,:a),
CONVERT(BIT,NULL)
INTO :x,:y)
w !,"SQLCODE=",SQLCODE
w !,"the host variable is:",x
w !,"the NULL keyword is:",y
}
可选的format-code参数指定日期、datetime或时间格式。 该格式既可用于定义从日期/时间/时间戳数据类型转换为字符串时的输出,也可用于定义从字符串转换为日期/时间/时间戳数据类型时的输入。 支持以下格式代码; 输出两位数年份的格式代码列在第一列; 输出四位数年或不输出年的格式列在第二列:
Two-digit year codes Four-digit year codes Format
以下是日期和时间转换的特性:
取值范围:允许的日期范围为0001-01-01 ~ 9999-12-31。
默认值:
将时间值转换为TIMESTAMP、POSIXTIME、DATETIME或SMALLDATETIME时,日期默认为1900-01-01。 注意,对于{fn CONVERT()},日期默认为1841-01-01。
将日期值转换为TIMESTAMP、POSIXTIME、DATETIME或SMALLDATETIME时,时间默认为00:00:00。

Default Format:如果没有指定Format -code, CONVERT将尝试从指定的值确定格式。 如果不能,则默认为格式代码100。
两位数年份:从00到49的两位数年份转换为21世纪的日期(2000到2049); 从50到99的两位数年份转换为20世纪的日期(1950到1999)。
分数秒:分数秒前可以加句号(.)或冒号(:)。 这些符号有不同的含义:
句点是默认值,可用于所有格式代码。 句号表示标准分数; 因此,12:00:00.4表示十分之四秒,而12:00:00.004表示千分之四秒。 分数精度的位数没有限制。
冒号只能用于以下格式代码值:9/109、13/113、14/114、130和131。 冒号表示后面的数字是千分之一秒; 因此12:00:00:4表示四万分之一秒(12:00:00.004)。 冒号后面的数字限制为3位。

当指定表达式的格式无效或格式与格式代码不匹配时,将产生SQLCODE -141错误。 指定一个不存在的格式代码将返回1900-01-01 00:00:00。
{fn CONVERT(expression,datatype)}
这是ODBC标量函数。 它支持以下ODBC显式数据类型转换。 必须使用“SQL_”关键字指定这种形式的CONVERT的数据类型转换。 在下表中,有两组转换数据类型,第一组转换数据值和数据类型,第二组转换数据类型,但不转换数据值:
Source Conversion
SQL_VARCHAR是标准的ODBC表示。 在转换为SQL_VARCHAR时,日期和时间被转换为相应的ODBC表示; 数字数据类型值转换为字符串表示。 从SQL_VARCHAR转换时,该值必须是有效的ODBC Time、Timestamp或Date表示。
当将时间值转换为SQL_TIMESTAMP或SQL_POSIXTIME时,未指定的日期默认为1841-01-01。 注意,对于CONVERT(),日期默认为1900-01-01。
将date值转换为SQL_TIMESTAMP或SQL_POSIXTIME时,时间默认为00:00:00。
在这种语法形式中,小数秒前面可以加句号(.)或冒号(:)。 这些符号有不同的含义。 句号表示标准分数; 因此,12:00:00.4表示十分之四秒,而12:00:00.004表示千分之四秒。 冒号表示接下来的是千分之一秒; 因此12:00:00:4表示千分之四秒。 冒号后面的数字限制为3位。
在转换为整数数据类型或SQL_DOUBLE数据类型时,数据值(包括日期和时间)将转换为数字表示。 对于SQL_DATE,这是自1841年1月1日以来的天数。 对于SQL_TIME,这是自午夜以来的秒数。 当遇到非数字字符时,输入字符串将被截断。 整数数据类型还截断十进制数字,返回数字的整数部分。
{fn CONVERT(expression,datatype)}不支持流数据的转换; 指定要表达的流字段将导致SQLCODE -37错误。
转换成任何数据类型的NULL仍然是NULL。
空字符串("),或任何非数字字符串值转换如下:
SQL_VARCHAR和SQL_TIMESTAMP返回提供的值。
数字数据类型转换为0(零)。
SQL_DATE和SQL_TIME转换为NULL。
CONVERT 类方法
还可以使用CONVERT()方法调用执行数据类型转换,使用" SQL_"关键字指定数据类型:
$SYSTEM.SQL.Functions.CONVERT(expression,convert-to-type,convert-from-type)
如下示例所示:
WRITE $SYSTEM.SQL.CONVERT(60945,"SQL_VARCHAR","SQL_DATE")
2007-11-11
示例
CONVERT() 示例
下面的示例使用标量语法形式的CONVERT。
下面的示例比较了使用DECIMAL和DOUBLE数据类型对小数的转换:
SELECT CONVERT(DECIMAL,-123456789.0000123456789) AS DecimalVal,
CONVERT(DOUBLE,-123456789.0000123456789) AS DoubleVal

下面的示例将字符流字段转换为VARCHAR文本字符串。 它还使用CHAR_LENGTH显示字符流字段的长度:
SELECT Notes,CONVERT(VARCHAR(80),Notes) AS NoteText,CHAR_LENGTH(Notes) AS TextLen
FROM Sample.Employee WHERE Notes IS NOT NULL
下面的例子展示了几种将出生日期字段(DOB)转换为格式化字符串的方法:
SELECT DOB,
CONVERT(VARCHAR(20),DOB) AS DOBDefault,
CONVERT(VARCHAR(20),DOB,100) AS DOB100,
CONVERT(VARCHAR(20),DOB,107) AS DOB107,
CONVERT(VARCHAR(20),DOB,114) AS DOB114,
CONVERT(VARCHAR(20),DOB,126) AS DOB126
FROM Sample.Person

默认格式和代码100格式是相同的。 因为DOB字段不包含时间值,所以显示时间的格式(这里包括默认值100、114和126)提供一个零值,它表示12:00AM(午夜)。 代码126格式提供了一个不包含空格的日期和时间字符串。
{fn CONVERT()} 示例
下面的示例使用了ODBC语法形式的CONVERT。
下面的嵌入式SQL示例将混合字符串转换为整数。 IRIS在第一个非数字字符处截断字符串,然后将结果数字转换为规范形式:
ClassMethod Convert1()
{
s a="007 James Bond"
&sql(SELECT {fn CONVERT(:a, SQL_INTEGER)} INTO :x)
w !,"SQLCODE=",SQLCODE
w !,"the host variable is:",x
}
DHC-APP>d ##class(PHA.TEST.SQLCommand).Convert1()

SQLCODE=0
the host variable is:7
下面的示例将“DOB”(出生日期)列中的日期转换为SQL_TIMESTAMP数据类型。
SELECT DOB,{fn CONVERT(DOB,SQL_TIMESTAMP)} AS DOBtoTstamp
FROM Sample.Person

生成的时间戳格式为“yyyy-mm-dd hh:mm:ss”。
下面的示例将“DOB”(出生日期)列中的日期转换为SQL_INTEGER数据类型。
SELECT DOB,{fn CONVERT(DOB,SQL_INTEGER)} AS DOBtoInt
FROM Sample.Person

下面的示例将“DOB”(出生日期)列中的日期转换为SQL_VARCHAR数据类型。
SELECT DOB,{fn CONVERT(DOB,SQL_VARCHAR)} AS DOBtoVChar
FROM Sample.Person

生成的字符串格式为:yyyy-mm-dd。