今天西部E網(wǎng)的icech要導(dǎo) SQL Server 的一些數(shù)據(jù),本來(lái)年月日是分成三個(gè)字段分別存放在 StarYear、StarMonth 和 StarDay 的,但是對(duì)方的數(shù)據(jù)年月日是在一個(gè)字段中,如下:
原來(lái)數(shù)據(jù)格式
StarYear StarMonth StarDay
2005 08 21
2005 08 22
2005 11 09
2005 12 11
要求導(dǎo)出的格式為
StarDate
2005-08-21
2005-08-22
2005-11-09
2005-12-11
如果StarYear、StarMonth 和 StarDay 三個(gè)字段都是char型
西部E網(wǎng)
那么直接用sql語(yǔ)句:
SELECT RTRIM(StarYear) + '-' + RTRIM(StarMonth) + '-' + RTRIM(StarDay)
AS StarDate
FROM STAR
即可。
注:RTRIM是為了格式需要,將右邊的空格去掉,其他函數(shù)請(qǐng)見(jiàn)本文最下方。
如果StarYear、StarMonth 和 StarDay 三個(gè)字段都是int型
那么對(duì)于字段就要進(jìn)行格式轉(zhuǎn)換一下
SELECT CAST(StarYear AS varchar(4)) + '-' + CAST(StarMonth AS varchar(2))
+ '-' + CAST(StarDay AS VarChar(2)) AS StarDate
FROM STAR
注:CAST是轉(zhuǎn)換函數(shù),如果StarYear字段為字符串或者其他格式也可以進(jìn)行轉(zhuǎn)換。更多的數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)見(jiàn)本文最下方。
西部E網(wǎng)
----字符串函數(shù)----
ASCII() --函數(shù)返回字符表達(dá)式最左端字符的ASCII 碼值
CHAR() --函數(shù)用于將ASCII 碼轉(zhuǎn)換為字符
--如果沒(méi)有輸入0 ~ 255 之間的ASCII 碼值CHAR 函數(shù)會(huì)返回一個(gè)NULL 值
LOWER() --函數(shù)把字符串全部轉(zhuǎn)換為小寫(xiě)
UPPER() --函數(shù)把字符串全部轉(zhuǎn)換為大寫(xiě)
STR() --函數(shù)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)
LTRIM() --函數(shù)把字符串頭部的空格去掉
RTRIM() --函數(shù)把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING() --函數(shù)返回部分字符串
CHARINDEX(),PATINDEX() --函數(shù)返回字符串中某個(gè)指定的子串出現(xiàn)的開(kāi)始位置
SOUNDEX() --函數(shù)返回一個(gè)四位字符碼
--SOUNDEX函數(shù)可用來(lái)查找聲音相似的字符串但SOUNDEX函數(shù)對(duì)數(shù)字和漢字均只返回0值
DIFFERENCE() --函數(shù)返回由SOUNDEX 函數(shù)返回的兩個(gè)字符表達(dá)式的值的差異
--0 兩個(gè)SOUNDEX 函數(shù)返回值的第一個(gè)字符不同
--1 兩個(gè)SOUNDEX 函數(shù)返回值的第一個(gè)字符相同
--2 兩個(gè)SOUNDEX 函數(shù)返回值的第一二個(gè)字符相同
--3 兩個(gè)SOUNDEX 函數(shù)返回值的第一二三個(gè)字符相同
--4 兩個(gè)SOUNDEX 函數(shù)返回值完全相同
西部E網(wǎng)
----數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)----
CAST() 函數(shù)語(yǔ)法如下
CAST() (<expression> AS <data_ type>[ length ])
CONVERT() 函數(shù)語(yǔ)法如下
CONVERT() (<data_ type>[ length ], <expression> [, style])