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