sql日期时间格式转换字符串简介
- 格式:doc
- 大小:31.50 KB
- 文档页数:2
SQLCONVERT()时间转字符串CONVERT(varchar,event_time,120) as event_timeValue Descriptiondata_type Required. The datatype to convert expression to. Can be one of the following: bigint, int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, smalldatetime, char, varchar, text, nchar, nvarchar, ntext, binary, varbinary, or image(length)Optional. The length of the resulting data type (for char, varchar, nchar, nvarchar, binary and varbinary)expression Required. The value to convert to another data typestyle Optional. The format used to convert between data types, such as a date or string format. Can be one of the following values: Converting datetime to character:Without century With century Input/Output Standard0100mon dd yyyy hh:miAM/PM Default1101mm/dd/yyyy US2102 yyyy.mm.dd ANSI3103 dd/mm/yyyy British/French4104dd.mm.yyyy German5105 dd-mm-yyyy Italian6106dd mon yyyy-7107Mon dd, yyyy-8108hh:mm:ss-9109mon dd yyyy hh:mi:ss:mmmAM (or PM)Default + millisec10110mm-dd-yyyy USA11111 yyyy/mm/dd Japan12112 yyyymmdd ISO13113dd mon yyyy hh:mi:ss:mmm Europe (24 hour clock)>14114hh:mi:ss:mmm24 hour clock20120yyyy-mm-dd hh:mi:ss ODBC canonical (24 hour clock)21121yyyy-mm-dd hh:mi:ss.mmm ODBC canonical (24 hour clock)126yyyy-mm-ddThh:mi:ss.mmm ISO8601127yyyy-mm-ddThh:mi:ss.mmmZ ISO8601 (with time zone Z)130dd mon yyyy hh:mi:ss:mmmAM Hijiri131dd/mm/yy hh:mi:ss:mmmAM HijiriConverting float to real:Value Explanation0Maximum 6 digits (default)18 digits216 digitsConverting money to character:Value Explanation0No comma delimiters, 2 digits to the right of decimal1Comma delimiters, 2 digits to the right of decimal2 No comma delimiters, 4 digits to the right of decimal。
sql时间转换格式convert(varchar(10),字段名,转换格式)convert(varchar(10),字段名,转换格式)CONVERT(nvarchar(10),count_time,121) CONVERT为⽇期转换函数,⼀般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar) 相互转换的时候才⽤到的函数的3个参数,第1个参数为,转换后的⼤⼩,第2个为转换⽇期的字段或函数,第3个为转换的格式.具体如下:0 | 0 or 100 | mon dd yyyy hh:miAM(或PM)1 | 101 | mm/dd/yy2 | 102 | yy-mm-dd3 | 103 | dd/mm/yy4 | 104 | dd-mm-yy5 | 105 | dd-mm-yy6 | 106 | dd mon yy7 | 107 | mon dd,yy8 | 108 | hh:mm:ss9 | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)10 | 110 | mm-dd-yy11 | 111 | yy/mm/dd12 | 112 | yymmdd13| 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24⼩时制)14 | 114 | hh:mi:ss:mmm(24⼩时制)15 | 20 or 120 | yyyy-mm-dd hh:mi:ss(24⼩时制)16 | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24⼩时制)具体例⼦:(varchar长度可以控制所获取的数据长度,从⽽达到控制所需格式)SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2011 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/11SELECT CONVERT(varchar(100), GETDATE(), 2): 11.05.16SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/11SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.11SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-11SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 11SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 11SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2011 10:57:46:827AMSELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-11SELECT CONVERT(varchar(100), GETDATE(), 11): 11/05/16SELECT CONVERT(varchar(100), GETDATE(), 12): 110516SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2011 10:57:46:937SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967SELECT CONVERT(varchar(100), GETDATE(), 20): 2011-05-16 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 21): 2011-05-16 10:57:47.157SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/11 10:57:47 AMSELECT CONVERT(varchar(100), GETDATE(), 23): 2011-05-16SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 25): 2011-05-16 10:57:47.250SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2011 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2011SELECT CONVERT(varchar(100), GETDATE(), 102): 2011.05.16SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2011SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2011SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2011SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2011SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2011SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2011 10:57:49:437AM SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2011SELECT CONVERT(varchar(100), GETDATE(), 111): 2011/05/16SELECT CONVERT(varchar(100), GETDATE(), 112): 20110516SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2011 10:57:49:513SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547SELECT CONVERT(varchar(100), GETDATE(), 120): 2011-05-16 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 121): 2011-05-16 10:57:49.700SELECT CONVERT(varchar(100), GETDATE(), 126): 2011-05-16T10:57:49.827SELECT 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(100), GETDATE(), 8): 10:57:46Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49Select CONVERT(varchar(100), GETDATE(), 12): 110516Select CONVERT(varchar(100), GETDATE(), 23): 2011-05-16---常⽤实例操作:⼀、sql server⽇期时间函数 Sql Server中的⽇期与时间函数1. 当前系统⽇期、时间例如:查找当前时间select getdate()2. dateadd 在向指定⽇期加上⼀段时间的基础上,返回新的 datetime 值例如:向⽇期加上2天select dateadd(day,2,'2010-10-15') --返回:2010-10-17 00:00:00.000以此类推:向⽇期倒推⼏天或⼏个⽉也是可以的。
sql中date_format用法在SQL中,可以使用`DATE_FORMAT`函数将日期和时间值格式化为指定的字符串形式。
该函数的语法如下:```DATE_FORMAT(date, format)```其中,`date`是要格式化的日期或时间值,`format`是指定日期和时间格式的格式字符串。
下面是`format`参数中可以使用的一些格式字符以及其对应的含义:- `%Y`:四位的年份表示(如:2022)- `%y`:二位的年份表示(如:22)- `%m`:两位的月份表示(如:01, 02, ..., 12)- `%c`:单个数字的月份表示(如:1, 2, ..., 12)- `%d`:两位的日期表示(如:01, 02, ..., 31)- `%e`:带有前导空格的日期表示(如: 1, 2, ..., 31)- `%H`:24小时制的小时表示(如:00, 01, ..., 23)- `%h`:12小时制的小时表示(如:01, 02, ..., 12)- `%i`:两位的分钟表示(如:00, 01, ..., 59)- `%s`:两位的秒表示(如:00, 01, ..., 59)- `%p`:AM 或 PM 表示(仅用于12小时制格式)- `%W`:完整的星期名称(如:Sunday, Monday, ..., Saturday)- `%a`:缩写的星期名称(如:Sun, Mon, ..., Sat)- `%M`:完整的月份名称(如:January, February, ..., December)- `%b`:缩写的月份名称(如:Jan, Feb, ..., Dec)- `%T`:24小时制的时间表示(如:23:59:59)- `%r`:包含 AM 或 PM 的时间表示(如:11:59:59 PM)- `%D`:带有日期序数后缀的日期表示(如:1st, 2nd, ..., 31st)- `%j`:年份中的第几天(如:001, 002, ..., 366)下面是一些例子,展示了如何使用`DATE_FORMAT`函数将日期和时间值格式化为不同的字符串形式:1. 将日期格式化为"YYYY-mm-dd"的形式:```sqlSELECT DATE_FORMAT('2022-01-01', '%Y-%m-%d');-- 输出:2022-01-01```2. 将日期时间格式化为"YYYY-mm-dd HH:ii:ss"的形式:```sqlSELECT DATE_FORMAT('2022-01-01 12:34:56', '%Y-%m-%d %H:%i:%s');-- 输出:2022-01-01 12:34:56```3. 将日期格式化为"Month D, YYYY"的形式:```sqlSELECT DATE_FORMAT('2022-01-01', '%M %D, %Y');-- 输出:January 1st, 2022```4. 将时间格式化为"HH:ii AM"的形式:```sqlSELECT DATE_FORMAT('12:34', '%h:%i %p');-- 输出:12:34 PM```5. 将日期和时间格式化为"YYYY-mm-dd HH:ii AM"的形式:```sqlSELECT DATE_FORMAT('2022-01-01 12:34', '%Y-%m-%d %h:%i %p');-- 输出:2022-01-01 12:34 PM```6. 将日期格式化为"Day, Month D, YYYY HH:ii:ss"的形式:```sqlSELECT DATE_FORMAT('2022-01-01 12:34:56','%W, %M %D, %Y %T');-- 输出:Saturday, January 1st, 2022 12:34:56```需要注意的是,`DATE_FORMAT`函数对于不同的数据库系统可能会有一些差异,而且不同的数据库系统可能支持不同的格式字符。
sqlserver⽇期格式转字符串select CONVERT(varchar(50),GETDATE(),0) --⽉⽇ 4位年时:分AM/PM 12 15 2020 3:15PMselect CONVERT(varchar(50),GETDATE(),1) --⽉/⽇/2位年 12/15/20select CONVERT(varchar(50),GETDATE(),2) --2位年.⽉⽇. 20.12.15select CONVERT(varchar(50),GETDATE(),3) --⽇/⽉/2位年 15/12/20select CONVERT(varchar(50),GETDATE(),4) --⽇.⽉.2位年 15.12.20select CONVERT(varchar(50),GETDATE(),5) --⽇-⽉-2位年 15-12-20select CONVERT(varchar(50),GETDATE(),6) --⽇⽉ 2位年 15 12 20select CONVERT(varchar(50),GETDATE(),7) --⽉⽇,2位年 12 15, 20select CONVERT(varchar(50),GETDATE(),8) --时:分:秒 15:19:58select CONVERT(varchar(50),GETDATE(),9) --⽉⽇ 4位年时:分:秒:毫秒AM/PM 12 15 2020 3:19:58:017PM select CONVERT(varchar(50),GETDATE(),10) --⽉-⽇-2位年 12-15-20select CONVERT(varchar(50),GETDATE(),11) --2位年/⽉/⽇ 20/12/15select CONVERT(varchar(50),GETDATE(),12) --2位年⽉⽇ 201215select CONVERT(varchar(50),GETDATE(),13) --⽇⽉ 4位年时:分:秒:毫秒 15 12 2020 15:19:58:017select CONVERT(varchar(50),GETDATE(),14) --时:分:秒:毫秒 15:19:58:017select CONVERT(varchar(50),GETDATE(),20) --4位年-⽉-⽇时:分:秒 2020-12-15 15:20:54select CONVERT(varchar(50),GETDATE(),21) --4位年-⽉-⽇时:分:秒.毫秒 2020-12-15 15:21:05.527select CONVERT(varchar(50),GETDATE(),22) --⽉/⽇/2位年时:分:秒AM/PM 12/15/20 3:21:05 PMselect CONVERT(varchar(50),GETDATE(),23) --4位年-⽉-⽇ 2020-12-15select CONVERT(varchar(50),GETDATE(),24) --时:分:秒 15:21:05select CONVERT(varchar(50),GETDATE(),25) --4位年-⽉-⽇时:分:秒.毫秒 2020-12-15 15:21:05.527select CONVERT(varchar(50),GETDATE(),100) --⽉⽇ 4位年时:分AM/PM 12 15 2020 3:21PMselect CONVERT(varchar(50),GETDATE(),101) --⽉/⽇/4位年 12/15/2020select CONVERT(varchar(50),GETDATE(),102) --4位年.⽉.⽇ 2020.12.15select CONVERT(varchar(50),GETDATE(),103) --⽇/⽉/4位年 15/12/2020select CONVERT(varchar(50),GETDATE(),104) --⽇.⽉.4位年 15.12.2020select CONVERT(varchar(50),GETDATE(),105) --⽇-⽉-4位年 15-12-2020select CONVERT(varchar(50),GETDATE(),106) --⽇⽉ 4位年 15 12 2020select CONVERT(varchar(50),GETDATE(),107) --⽉⽇,4位年 12 15, 2020select CONVERT(varchar(50),GETDATE(),108) --时:分:秒 15:21:05select CONVERT(varchar(50),GETDATE(),109) --⽉⽇ 4位年时:分:秒:毫秒AM/PM 12 15 2020 3:21:05:527PM select CONVERT(varchar(50),GETDATE(),110) --⽉-⽇-4位年 12-15-2020select CONVERT(varchar(50),GETDATE(),111) --4位年/⽉/⽇ 2020/12/15select CONVERT(varchar(50),GETDATE(),112) --4位年⽉⽇ 20201215select CONVERT(varchar(50),GETDATE(),113) --⽇⽉ 4位年时:分:秒:毫秒 15 12 2020 15:21:05:527select CONVERT(varchar(50),GETDATE(),114) --时:分:秒:毫秒 15:21:05:527select CONVERT(varchar(50),GETDATE(),120) --4位年-⽉-⽇时:分:秒 2020-12-15 15:21:05select CONVERT(varchar(50),GETDATE(),121) --4位年-⽉-⽇时:分:秒.毫秒 2020-12-15 15:21:05.527 select CONVERT(varchar(50),GETDATE(),126) --4位年-⽉-⽇T时:分:秒.毫秒 2020-12-15T15:21:05.527。
CONVERT(data_type,expression[,style])convert(varchar(10),字段名,转换格式)说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar) 相互转换的时候才用到.语句结果SELECT CONVERT(varchar(100), GETDATE(), 0) 07 15 2009 4:06PMSELECT CONVERT(varchar(100), GETDATE(), 1) 07/15/09SELECT CONVERT(varchar(100), GETDATE(), 2) 09.07.15SELECT CONVERT(varchar(100), GETDATE(), 3) 15/07/09SELECT CONVERT(varchar(100), GETDATE(), 4) 15.07.09SELECT CONVERT(varchar(100), GETDATE(), 5) 15-07-09SELECT CONVERT(varchar(100), GETDATE(), 6) 15 07 09SELECT CONVERT(varchar(100), GETDATE(), 7) 07 15, 09SELECT CONVERT(varchar(100), GETDATE(), 8) 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 9) 07 15 2009 4:06:26:513PM SELECT CONVERT(varchar(100), GETDATE(), 10) 07-15-09SELECT CONVERT(varchar(100), GETDATE(), 11) 09/07/15SELECT CONVERT(varchar(100), GETDATE(), 12) 090715SELECT CONVERT(varchar(100), GETDATE(), 13) 15 07 2009 16:06:26:513 SELECT CONVERT(varchar(100), GETDATE(), 14) 16:06:26:513SELECT CONVERT(varchar(100), GETDATE(), 20) 2009-07-15 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 21) 2009-07-15 16:06:26.513 SELECT CONVERT(varchar(100), GETDATE(), 22) 07/15/09 4:06:26 PMSELECT CONVERT(varchar(100), GETDATE(), 23) 2009-07-15SELECT CONVERT(varchar(100), GETDATE(), 24) 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 25) 2009-07-15 16:06:26.513SELECT CONVERT(varchar(100), GETDATE(), 100) 07 15 2009 4:06PMSELECT CONVERT(varchar(100), GETDATE(), 101) 07/15/2009SELECT CONVERT(varchar(100), GETDATE(), 102) 2009.07.15SELECT CONVERT(varchar(100), GETDATE(), 103) 15/07/2009SELECT CONVERT(varchar(100), GETDATE(), 104) 15.07.2009SELECT CONVERT(varchar(100), GETDATE(), 105) 15-07-2009SELECT CONVERT(varchar(100), GETDATE(), 106) 15 07 2009SELECT CONVERT(varchar(100), GETDATE(), 107) 07 15, 2009SELECT CONVERT(varchar(100), GETDATE(), 108) 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 109) 07 15 2009 4:06:26:513PMSELECT CONVERT(varchar(100), GETDATE(), 110) 07-15-2009SELECT CONVERT(varchar(100), GETDATE(), 111) 2009/07/15SELECT CONVERT(varchar(100), GETDATE(), 112) 20090715SELECT CONVERT(varchar(100), GETDATE(), 113) 15 07 2009 16:06:26:513SELECT CONVERT(varchar(100), GETDATE(), 114) 16:06:26:513SELECT CONVERT(varchar(100), GETDATE(), 120) 2009-07-15 16:06:26SELECT CONVERT(varchar(100), GETDATE(), 121) 2009-07-15 16:06:26.513SELECT CONVERT(varchar(100), GETDATE(), 126) 2009-07-15T16:06:26.513SELECT CONVERT(varchar(100), GETDATE(), 130) 23 ??? 1430 4:06:26:513PMSELECT CONVERT(varchar(100), GETDATE(), 131) 23/07/1430 4:06:26:513PMstyle数字在转换时间时的含义如下:------------------------------------------------------------------------------------------------------------Style(2位表示年份) | Style(4位表示年份) | 输入输出格式------------------------------------------------------------------------------------------------------------0 | 100 | mon dd yyyy hh:miAM(或PM)------------------------------------------------------------------------------------------------------------1 | 101 美国| mm/dd/yy------------------------------------------------------------------------------------------------------------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:mmmmAM(或PM)------------------------------------------------------------------------------------------------------------10 | 110 美国| mm-dd-yy------------------------------------------------------------------------------------------------------------11 | 111 日本| yy/mm/dd------------------------------------------------------------------------------------------------------------12 | 112 ISO | yymmdd------------------------------------------------------------------------------------------------------------13 | 113 欧洲默认值| dd mon yyyy hh:mi:ss:mmm(24小时制)------------------------------------------------------------------------------------------------------------14 | 114 | hh:mi:ss:mmm(24小时制)------------------------------------------------------------------------------------------------------------20 | 120 ODBC 规范| yyyy-mm-dd hh:mi:ss(24小时制)------------------------------------------------------------------------------------------------------------21 | 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制) ------------------------------------------------------------------------------------------------------------说明:使用CONVERT:CONVERT(data_type [ (length )] , expression [ , style ] )参数expression是任何有效的Microsoft® SQL Server™ 表达式。
Sql中将datetime转换成字符串的⽅法(CONVERT)⼀、回顾⼀下CONVERT()的语法格式:CONVERT (<data_ type>[ length ], <expression> [, style])⼆、这⾥注重说明⼀下style的含义:style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选⽤的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式;⼀般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才⽤到.三、下表是SQL Server 系统提供的转换样式编号:不带世纪数位 (yy)带世纪数位 (yyyy)标准输⼊/输出**-0 或 100 (*)默认值mon dd yyyy hh:miAM(或 PM)1101美国mm/dd/yyyy2102ANSI yy.mm.dd3103英国/法国dd/mm/yy4104德国dd.mm.yy5105意⼤利dd-mm-yy6106-dd mon yy7107-mon dd, yy8108-hh:mm:ss-9 或 109 (*)默认值 + 毫秒mon dd yyyyhh:mi:ss:mmmAM(或 PM)10110美国mm-dd-yy11111⽇本yy/mm/dd12112ISO yymmdd-13 或 113 (*)欧洲默认值 + 毫秒dd mon yyyy hh:mm:ss:mmm(24h) 14114-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(***)ISO8601yyyy-mm-dd Thh:mm:ss.mmm(不含空格)-130*Hijri****dd mon yyyy hh:mi:ss:mmmAM-131*Hijri****dd/mm/yy hh:mi:ss:mmmAM表中‘*'表⽰的含义说明: * 默认值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位(yyyy)。
sql语句中使用format datetime转字符串的函数
在 SQL 中,不同的数据库管理系统(DBMS)可能有不同的函数来将日期时间(datetime)转换为字符串。
以下是一些主要的数据库系统中的例子:
1. MySQL:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_datetime;
2. PostgreSQL:
SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS') AS formatted_datetime;
3. SQL Server:
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS formatted_datetime;
4. SQLite:
SELECT STRFTIME('%Y-%m-%d %H:%M:%S', 'now') AS formatted_datetime;
上述代码中:
NOW()(MySQL)、CURRENT_TIMESTAMP(PostgreSQL)、GETDATE()(SQL Server)和'now'(SQLite)用于获取当前日期时间。
DATE_FORMAT()(MySQL)、TO_CHAR()(PostgreSQL)、FORMAT()(SQL Server)和 STRFTIME()(SQLite)用于格式化日期时间为字符串。
请根据你使用的数据库系统,选择相应的语法。
这里的日期时间格式化字符串可以根据你的需求进行调整。
sqlserver 字符串转时间非标准格式在SQL Server中,我们经常遇到将字符串转换为日期和时间的需求。
通常情况下,SQL Server提供了标准的日期和时间格式转换函数,例如CONVERT和TRY_CONVERT。
但是有时候,我们可能会遇到非标准格式的日期和时间字符串,这时候我们需要使用其他方法来转换。
首先,让我们来了解一下SQL Server中的标准日期和时间格式,以便更好地理解非标准格式的转换。
在SQL Server中,标准的日期和时间格式包括以下几种:1. yyyy-MM-dd:年份-月份-日期2. dd/MM/yyyy:日期/月份/年份3. MM/dd/yyyy:月份/日期/年份4. yyyy-MM-dd HH:mm:ss:年份-月份-日期小时:分钟:秒5. yyyy-MM-ddTHH:mm:ss:年份-月份-日期THH:mm:ss这些是SQL Server中常用的标准日期和时间格式,可直接使用CONVERT函数将字符串转换为日期和时间类型。
例如,使用CONVERT函数将字符串'2022-01-01'转换为日期类型:```sqlSELECT CONVERT(DATE, '2022-01-01') AS ConvertedDate;```在这个例子中,我们使用CONVERT函数将字符串'2022-01-01'转换为DATE类型,并将结果命名为ConvertedDate。
然而,对于非标准格式的日期和时间字符串,我们需要使用一些其他的方法来进行转换。
在SQL Server中,我们可以使用CAST函数将字符串转换为日期和时间类型,但是它要求字符串的格式必须符合SQL Server的日期和时间格式。
如果字符串的格式不符合标准格式,我们可以使用SUBSTRING函数和字符串操作来提取日期和时间的各个部分,并使用这些部分来构建一个符合标准格式的字符串,然后再进行转换。
sqlto_char⽇期转换字符串1、转换函数与date操作关系最⼤的就是两个转换函数:to_date(),to_char()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~23MI:⼀⼩时中的分钟SS:⼀分钟中的秒SSSS:从午夜开始过去的秒数to_char():将⽇期转按⼀定格式换成字符类型SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') time from dual;TIME-------------------2004-10-08 15:22:58即把当前时间按yyyy-mm-dd hh24:mi:ss格式转换成字符类型在oracle中处理⽇期⼤全TO_DATE格式Day:dd number 12dy abbreviated friday spelled out fridayddspth spelled out, ordinal twelfthMonth:mm number 03mon abbreviated marmonth spelled out marchYear:yy two digits 98yyyy four digits 199824⼩时格式下时间范围为: 0:00:00 - 23:59:59....12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....[ZT]⽇期和時間函數匯總1.⽇期和字符转换函数⽤法(to_date,to_char)2.select to_char( to_date(222,'J'),'Jsp') from dual显⽰Two Hundred Twenty-Two3.求某天是星期⼏select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;星期⼀select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; monday设置⽇期语⾔ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';也可以这样TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')4.两个⽇期间的天数select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;5. 时间为null的⽤法select id, active_date from table1UNIONselect 1, TO_DATE(null) from dual;注意要⽤TO_DATE(null)6.a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')那么12⽉31号中午12点之后和12⽉1号的12点之前是不包含在这个范围之内的。
SQL⼀些时间格式的转换convert⽇期转换格式为20或120时,得到的字符串是不带毫秒的。
如 select CONVERT(VARCHAR(23),getdate(),120或20)2003-01-07 21:46:43⽇期转换格式为21或121时,得到的字符串是带毫秒的select CONVERT(VARCHAR(23),getdate(),121或21)2003-01-07 21:47:34.360⽇本标准⽇期转换格式为111时,得到的字符串是yyyy/mm/ddselect CONVERT(VARCHAR(23),getdate(),111)2003/01/07具体参见convert help不带世纪数位 (yy) 带世纪数位 (yyyy) 标准输⼊/输出**- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)1 101 美国 mm/dd/yyyy2 102 ANSI yy.mm.dd3 103 英国/法国 dd/mm/yy4 104 德国 dd.mm.yy5 105 意⼤利 dd-mm-yy6 106 - dd mon yy7 107 - mon dd, yy8 108 - hh:mm:ss- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)10 110 美国 mm-dd-yy11 111 ⽇本 yy/mm/dd12 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:mmmAMSQL Server各种⽇期计算⽅法之⼆ 上个⽉的最后⼀天 这是⼀个计算上个⽉最后⼀天的例⼦。
sqlserver⽇期时间格式转换字符串简介最近设计数据库表结构时候要⽤到⽇期时间格式转换,弄了半天纠结了半天,发现好多以前掌握的东西都忘记了看来不经常⽤是容易遗忘,再次转载下sql server⽇期时间格式转换字符串;在sql server数据库中,sql server⽇期时间格式转换字符串可以改变sql server⽇期和时间的格式,是每个SQL数据库⽤户都应该掌握的。
⽇期时间转字符串:1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/063. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.164. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/065. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.066. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-067. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 068. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 069. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:4610. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-0612. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/1613. Select CONVERT(varchar(100), GETDATE(), 12): 06051614. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:93715. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:96716. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:4717. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.15718. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-1620. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:4721. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.25022. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/200624. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.1625. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/200626. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.200627. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-200628. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 200629. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 200630. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:4931. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-200633. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/1634. Select CONVERT(varchar(100), GETDATE(), 112): 2006051635. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:51336. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:54737. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:4938. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.70039. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.82740. Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM。
SQL中字符串类型转换为时间类型在SQL Server数据库中,SQL Server⽇期时间格式转换字符串可以改变SQL Server⽇期和时间的格式,是每个SQL数据库⽤户都应该掌握的。
本⽂我们主要就介绍⼀下SQL Server⽇期时间转字符串的相关知识,接下来就让我们⼀起来了解⼀下这部分内容。
⽇期时间转字符串:1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/063. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.164. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/065. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.066. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-067. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 068. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 069. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:4610. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-0612. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/1613. Select CONVERT(varchar(100), GETDATE(), 12): 06051614. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:93715. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:96716. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:4717. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.15718. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-1620. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:4721. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.25022. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/200624. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.1625. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/200626. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.200627. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-200628. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 200629. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 200630. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:4931. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-200633. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/1634. Select CONVERT(varchar(100), GETDATE(), 112): 2006051635. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:51336. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:54737. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:4938. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.70039. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.82740. Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM在SQL数据库中,有⼀类函数是不得不提的,那就是SQL Server⽇期时间函数,这是SQL Server处理⽇期和时间最常⽤的函数,下⾯就将为介绍这类函数。
sql⽇期时间函数+格式转换<⽇期时间函数>(可参考下列表格)转换函数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~23MI:⼀⼩时中的分钟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 )返回跨两个指定⽇期的⽇期边界数和时间边界数。
SQL中字符串类型转换为时间类型在SQL Server数据库中,SQL Server⽇期时间格式转换字符串可以改变SQL Server⽇期和时间的格式,是每个SQL数据库⽤户都应该掌握的。
本⽂我们主要就介绍⼀下SQL Server⽇期时间转字符串的相关知识,接下来就让我们⼀起来了解⼀下这部分内容。
⽇期时间转字符串:1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/063. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.164. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/065. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.066. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-067. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 068. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 069. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:4610. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-0612. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/1613. Select CONVERT(varchar(100), GETDATE(), 12): 06051614. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:93715. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:96716. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:4717. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.15718. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-1620. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:4721. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.25022. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/200624. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.1625. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/200626. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.200627. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-200628. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 200629. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 200630. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:4931. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-200633. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/1634. Select CONVERT(varchar(100), GETDATE(), 112): 2006051635. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:51336. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:54737. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:4938. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.70039. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.82740. Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM在SQL数据库中,有⼀类函数是不得不提的,那就是SQL Server⽇期时间函数,这是SQL Server处理⽇期和时间最常⽤的函数,下⾯就将为介绍这类函数。
SQL中字符串类型转换为时间类型在SQL Server数据库中,SQL Server⽇期时间格式转换字符串可以改变SQL Server⽇期和时间的格式,是每个SQL数据库⽤户都应该掌握的。
本⽂我们主要就介绍⼀下SQL Server⽇期时间转字符串的相关知识,接下来就让我们⼀起来了解⼀下这部分内容。
⽇期时间转字符串:1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/063. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.164. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/065. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.066. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-067. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 068. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 069. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:4610. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-0612. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/1613. Select CONVERT(varchar(100), GETDATE(), 12): 06051614. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:93715. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:96716. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:4717. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.15718. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-1620. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:4721. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.25022. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/200624. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.1625. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/200626. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.200627. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-200628. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 200629. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 200630. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:4931. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-200633. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/1634. Select CONVERT(varchar(100), GETDATE(), 112): 2006051635. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:51336. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:54737. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:4938. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.70039. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.82740. Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM在SQL数据库中,有⼀类函数是不得不提的,那就是SQL Server⽇期时间函数,这是SQL Server处理⽇期和时间最常⽤的函数,下⾯就将为介绍这类函数。
SQL时间及字符串操作都是⼀些很基础很常⽤的,在这⾥记录⼀下获取年⽉⽇: year(时间) ---获取年,2014 month(时间) ----获取⽉,5 day(时间) -----获取天,6如果⽉份或⽇期不⾜两位数,则前⾯补0,如5⽉,补0为:05,处理⽅法是使⽤right('要补的字符串'+原字符串,不⾜⼏位就补整形),如:RIGHT('0'+CAST(DAY(getdate()) AS NVARCHAR(2)),2),结果为04往现有的⽇期上累加⽇期: ⽅法:DATEADD(datepart,number,date) datepart常⽤的:yy(年),mm(⽉),dd(⽇),hh(时),mi(分),ss(秒)时间间隔: DATEDIFF ( datepart, 起始⽇期, 结束⽇期) datepart常⽤的:yy(年),mm(⽉),dd(⽇),hh(时),mi(分),ss(秒),删除指定长度的字符,并在指定的起点处插⼊另⼀组字符。
⽅法:stuff('指定字符串',起始长度包含,要删除的长度,'要插⼊的字符串') 如:SELECT STUFF('1234567',3,2,'abc')表⽰‘1234567’从第三个开始删除,删除两个长度的字符,然后插⼊'abc',结果为:12abc567转换时间到字符串: Convert SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AMSELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16SELECT CONVERT(varchar(100), GETDATE(), 12): 060516SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AMSELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AMSELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AMSELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49SELECT CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49:000截取字符串: 函数:substring select substring('abcdefg',1,4) 标⽰从第⼀个开始,截图长度为4的字符串,结果为:abcd 替换字符串: 函数:replace SELECT REPLACE('abcdefg', 'a', '123'); 把字符串中的a替换为‘123’,结果:123bcdefg。
在sql server数据库中,sql server日期时间格式转换字符串可以改变sql server日期和时间的格式,是每个SQL数据库用户都应该掌握的。
日期时间转字符串:
1.Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57A
M
2.Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
3.Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
4.Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
5.Select CONVERT(varchar(100), GETDATE(), 4): 1
6.05.06
6.Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
7.Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
8.Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
9.Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
10.Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:
46:827AM
11.Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
12.Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
13.Select CONVERT(varchar(100), GETDATE(), 12): 060516
14.Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57
:46:937
15.Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
16.Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57
:47
17.Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57
:47.157
18.Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:4
7 AM
19.Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
20.Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
21.Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57
:47.250
22.Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:5
7AM
23.Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
24.Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
25.Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
26.Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
27.Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
28.Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
29.Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
30.Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
31.Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:5
7:49:437AM
32.Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
33.Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
34.Select CONVERT(varchar(100), GETDATE(), 112): 20060516
35.Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:5
7:49:513
36.Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
37.Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:5
7:49
38.Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:5
7:49.700
39.Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:5
7:49.827
40.Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ??????
1427 10:57:49:907AM。