社区
MS-SQL Server
帖子详情
一个datetime型的变量@zdate ,内容是2003-09-06,经过CAST(@zdate AS VARCHAR(10))变换以后怎么变成09 06 2003了呢?顺序变了,我想要原
Iris
2003-08-18 04:25:45
一个datetime型的变量@zdate ,内容是2003-09-06,经过CAST(@zdate AS VARCHAR(10))变换以后怎么变成09 06 2003了呢?顺序变了,我想要原来的顺序怎么办?
谢谢!
...全文
87
4
打赏
收藏
一个datetime型的变量@zdate ,内容是2003-09-06,经过CAST(@zdate AS VARCHAR(10))变换以后怎么变成09 06 2003了呢?顺序变了,我想要原
一个datetime型的变量@zdate ,内容是2003-09-06,经过CAST(@zdate AS VARCHAR(10))变换以后怎么变成09 06 2003了呢?顺序变了,我想要原来的顺序怎么办? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Iris
2003-08-18
打赏
举报
回复
我是再函数里面写的,函数里面不可以用getdate()吧
提示是:在函数内不正确地使用了 'getdate'。
flying120
2003-08-18
打赏
举报
回复
同意 txlicenhe
Iris (彩虹部落) 你是因为没有指定转换格式,指定一下就ok
dafu71
2003-08-18
打赏
举报
回复
select CONVERT(varchar(10), @zdate ,120)
txlicenhe
2003-08-18
打赏
举报
回复
select CONVERT(varchar(10), getDate(),120) --不要时间2002-1-1
select convert(char(8),getdate(),112) ----20020101
select convert(char(8),getdate(),108) ---06:05:05
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示例大全.pdf
精心收集整理的各种SQL语句示例,帮助您更加容易的熟悉和使SQL。 1 DECLARE @local_variable 1.1 使用 DECLARE 以下示例将使用名为 @find 的局部
变
量
检索所有姓氏以“Man”开头的联系人信息。 USE AdventureWorks; GO DECLARE @find
varchar
(30); SET @find = 'Man%'; SELECT LastName, FirstName, Phone FROM Person.Contact WHERE LastName LIKE @find; 2 EXECUTE 2.1 使用 EXECUTE 传递单个参数 uspGetEmployeeManagers 存储过程需要
一个
参数 (@EmployeeID)。 以下示例执行 uspGetEmployeeManagers 存储过程,以 Employee ID 6 作为参数值。 USE AdventureWorks; GO EXEC dbo.uspGetEmployeeManagers 6; GO 2.2 在执行过程中
变
量
可以显式命名: EXEC dbo.uspGetEmployeeManagers @EmployeeID = 6; GO 2.3 使用多个参数 以下示例执行 spGetWhereUsedProductID 存储过程。 该存储过程将传递两个参数:第
一个
参数为产品 ID (819),第二个参数 @Check
Date
, 是
date
time
值。 USE AdventureWorks; GO DECLARE @Check
Date
date
time
; SET @Check
Date
= GET
DATE
(); EXEC dbo.uspGetWhereUsedProductID 819, @Check
Date
; GO 3 sp_executesql 执行可以多次重复使用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语句或批处理可以包含嵌入参数。 sp_executesql 支持与 Transact-SQL 字符串分开的参数值的设置,如以下示例所示。 DECLARE @IntVariable int; DECLARE @SQLString n
varchar
(500); DECLARE @ParmDefinition n
varchar
(500); /* Build the SQL string one time.*/ SET @SQLString = N'SELECT EmployeeID, NationalIDNumber, Title, ManagerID FROM AdventureWorks.HumanResources.Employee WHERE ManagerID = @ManagerID'; SET @ParmDefinition = N'@ManagerID tinyint'; /* Execute the string with the first parameter value. */ SET @IntVariable = 197; EXECUTE sp_executesql @SQLString, @ParmDefinition, @ManagerID = @IntVariable; /* Execute the same string with the second parameter value. */ SET @IntVariable = 1
09
; EXECUTE sp_executesql @SQLString, @ParmDefinition, @ManagerID = @IntVariable; 输出参数也可用于 sp_executesql。以下示例从 AdventureWorks.HumanResources.Employee 表中检索职务,并在输出参数 @max_title 中返回它。 DECLARE @IntVariable int; DECLARE @SQLString n
varchar
(500); DECLARE @ParmDefinition n
varchar
(500); DECLARE @max_title
varchar
(30); SET @IntVariable = 197; SET @SQLString = N'SELECT @max_titleOUT = max(Title) FROM AdventureWorks.HumanResources.Employee WHERE ManagerID = @level'; SET @ParmDefinition = N'@level tinyint, @max_titleOUT
varchar
(30) OUTPUT'; EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title OUTPUT; SELECT @max_title; 3.1 执行简单的 SELECT 语句 以下示例将创建并执行
一个
简单的 SELECT 语句,其中包含名为 @level 的嵌入参数。 EXECUTE sp_executesql N'SELECT * FROM AdventureWorks.HumanResources.Employee WHERE ManagerID = @level', N'@level tinyint', @level = 1
09
; 3.2 执行动态生成的字符串 以下示例显示使用 sp_executesql 执行动态生成的字符串。该示例中的存储过程用于向一组表中插入数据,这些表用于划分一年的销售数据。一年中的每个月均有
一个
表,格式如下: CREATE TABLE May1998Sales (OrderID int PRIMARY KEY, CustomerID int NOT NULL, Order
Date
date
time
NULL CHECK (
DATE
PART(yy, Order
Date
) = 1998), OrderMonth int CHECK (OrderMonth = 5), Delivery
Date
date
time
NULL, CHECK (
DATE
PART(mm, Order
Date
) = OrderMonth) ) 3.3 使用 OUTPUT 参数 以下示例使用 OUTPUT 参数将由 SELECT 语句生成的结果集存储于 @SQLString 参数中。然后将执行两个使用 OUTPUT 参数值的 SELECT 语句。 USE AdventureWorks; GO DECLARE @SQLString n
varchar
(500); DECLARE @ParmDefinition n
varchar
(500); DECLARE @SalesOrderNumber n
varchar
(25); DECLARE @IntVariable int; SET @SQLString = N'SELECT @SalesOrderOUT = MAX(SalesOrderNumber) FROM Sales.SalesOrderHeader WHERE CustomerID = @CustomerID'; SET @ParmDefinition = N'@CustomerID int, @SalesOrderOUT n
varchar
(25) OUTPUT'; SET @IntVariable = 22276; EXECUTE sp_executesql @SQLString, @ParmDefinition, @CustomerID = @IntVariable, @SalesOrderOUT = @SalesOrderNumber OUTPUT; -- This SELECT statement returns the value of the OUTPUT parameter. SELECT @SalesOrderNumber; -- This SELECT statement uses the value of the OUTPUT parameter in -- the WHERE clause. SELECT Order
Date
, TotalDue FROM Sales.SalesOrderHeader WHERE SalesOrderNumber = @SalesOrderNumber; 4
CAS
T 和 CONVERT 将一种数据类
型
的表达式显式转换为另一种数据类
型
的表达式。
CAS
T 和 CONVERT 提供相似的功能。 DECLARE @myval decimal (5, 2) SET @myval = 193.57 SELECT
CAS
T(
CAS
T(@myval AS varbinary(20)) AS decimal(
10
,5)) -- Or, using CONVERT SELECT CONVERT(decimal(
10
,5), CONVERT(varbinary(20), @myval)) 4.1 同时使用
CAS
T 和 CONVERT -- Use
CAS
T USE AdventureWorks; GO SELECT SUBSTRING(Name, 1, 30) AS ProductName, ListPrice FROM Production.Product WHERE
CAS
T(ListPrice AS int) LIKE '3%'; GO -- Use CONVERT. USE AdventureWorks; GO SELECT SUBSTRING(Name, 1, 30) AS ProductName, ListPrice FROM Production.Product WHERE CONVERT(int, ListPrice) LIKE '3%'; GO 4.2 使用包含算术运算符的
CAS
T USE AdventureWorks; GO SELECT
CAS
T(ROUND(SalesYTD/CommissionPCT, 0) AS int) AS 'Computed' FROM Sales.SalesPerson WHERE CommissionPCT != 0; GO 4.3 使用
CAS
T 进行连接 USE AdventureWorks; GO SELECT 'The list price is ' +
CAS
T(ListPrice AS
varchar
(12)) AS ListPrice FROM Production.Product WHERE ListPrice BETWEEN 350.00 AND 400.00; GO 4.4 使用
CAS
T 生成可读性更高的文本 USE AdventureWorks; GO SELECT DISTINCT
CAS
T(p.Name AS char(
10
)) AS Name, s.UnitPrice FROM Sales.SalesOrderDetail s JOIN Production.Product p on s.ProductID = p.ProductID WHERE Name LIKE 'Long-Sleeve Logo Jersey, M'; GO 4.5 对日期时间数据使用
CAS
T 和 CONVERT SELECT GET
DATE
() AS Unconverted
Date
Time
,
CAS
T(GET
DATE
() AS n
varchar
(30)) AS Using
Cas
t, CONVERT(n
varchar
(30), GET
DATE
(), 126) AS UsingConvertTo_ISO8601 ; GO 5 SELECT 5.1 将 DISTINCT 与 SELECT 一起使用 以下示例使用 DISTINCT 以避免检索重复标题。 USE AdventureWorks ; GO SELECT DISTINCT Title FROM HumanResources.Employee ORDER BY Title ; GO 5.2 使用 SELECT INTO 创建表 以下第
一个
示例将在 tempdb 中创建
一个
名为 #Bicycles 的临时表。若要使用该表,则必须使用与下面显示的名称完全相同的名称进行引用。这包括数字符号 (#)。 USE tempdb ; IF OBJECT_ID (N'#Bicycles',N'U') IS NOT NULL DROP TABLE #Bicycles ; GO USE AdventureWorks; GO SET NOCOUNT ON SELECT * INTO #Bicycles FROM Production.Product WHERE ProductNumber LIKE 'BK%' SET NOCOUNT OFF SELECT name FROM tempdb..sysobjects WHERE name LIKE '#Bicycles%' ; GO 5.3 使用相关子查询 以下示例显示了语义等价的查询并说明了使用 EXISTS 关键字和 IN 关键字的区别。两个都是有效子查询示例,用于检索产品
型
号为长袖标志运动衫且 ProductModelID 编号在 Product 和 ProductModel 两个表中相匹配的每种产品名称的实例。 USE AdventureWorks ; GO SELECT DISTINCT Name FROM Production.Product p WHERE EXISTS (SELECT * FROM Production.ProductModel pm WHERE p.ProductModelID = pm.ProductModelID AND pm.Name = 'Long-sleeve logo jersey') ; GO -- OR USE AdventureWorks ; GO SELECT DISTINCT Name FROM Production.Product WHERE ProductModelID IN (SELECT ProductModelID FROM Production.ProductModel WHERE Name = 'Long-sleeve logo jersey') ; GO 5.4 使用 GROUP BY 以下示例查找数据库中各销售订单的总额。 USE AdventureWorks ; GO SELECT SalesOrderID, SUM(LineTotal) AS SubTotal FROM Sales.SalesOrderDetail sod GROUP BY SalesOrderID ORDER BY SalesOrderID ; GO 由于使用了 GROUP BY 子句,因此针对每个销售订单只返回一行销售总额。 5.5 对多个组使用 GROUP BY 以下示例查找按产品 ID 和特价产品 ID 分组的平均价格和迄今为止的年销售总额。 Use AdventureWorks SELECT ProductID, SpecialOfferID, AVG(UnitPrice) AS 'Average Price', SUM(LineTotal) AS SubTotal FROM Sales.SalesOrderDetail GROUP BY ProductID, SpecialOfferID ORDER BY ProductID GO 5.6 使用 GROUP BY 和 WHERE 以下示例在只检索标价大于 $
10
00 的行后,将结果进行分组。 USE AdventureWorks; GO SELECT ProductModelID, AVG(ListPrice) AS 'Average List Price' FROM Production.Product WHERE ListPrice > $
10
00 GROUP BY ProductModelID ORDER BY ProductModelID ; GO 5.7 将 GROUP BY 与表达式一起使用 以下示例按表达式进行分组。如果表达式不包含聚合函数,则可以按表达式进行分组。 USE AdventureWorks ; GO SELECT AVG(OrderQty) AS 'Average Quantity', NonDiscountSales = (OrderQty * UnitPrice) FROM Sales.SalesOrderDetail sod GROUP BY (OrderQty * UnitPrice) ORDER BY (OrderQty * UnitPrice) DESC ; GO 6 日期和时间 Syntax for
CAS
T:
CAS
T ( expression AS data_type [ (length ) ]) Syntax for CONVERT: CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 不带世纪数位 (yy) (1) 带世纪数位 (yyyy) 标准 输入/输出 (3) - 0 或
10
0 (1, 2) 默认设置 mon dd yyyy hh:miAM(或 PM) 1
10
1 美国 mm/dd/yyyy 2
10
2 ANSI yy.mm.dd 3
10
3 英国/法国 dd/mm/yy 4
10
4 德国 dd.mm.yy 5
10
5 意大利 dd-mm-yy 6 1
06
(1) - dd mon yy 7
10
7 (1) - mon dd, yy 8
10
8 - hh:mi:ss - 9 或 1
09
(1, 2) 默认设置 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10
1
10
美国 mm-dd-yy 11 111 日本 yy/mm/dd 12 112 ISO yymmdd - 13 或 113 (1, 2) 欧洲默认设置 + 毫秒 dd mon yyyy hh:mi:ss:mmm(24h) 14 114 - hh:mi:ss:mmm(24h) - 20 或 120 (2) ODBC 规范 yyyy-mm-dd hh:mi:ss(24h) - 21 或 121 (2) ODBC 规范(带毫秒) yyyy-mm-dd hh:mi:ss.mmm(24h) - 126 (4) ISO8601 yyyy-mm-ddThh:mi:ss.mmm(无空格) 127(6, 7) 带时区 Z 的 ISO8601。 yyyy-mm-ddThh:mi:ss.mmmZ (无空格) - 130 (1, 2) 回历 (5) dd mon yyyy hh:mi:ss:mmmAM - 131 (2) 回历 (5) dd/mm/yy hh:mi:ss:mmmAM Select CONVERT(
varchar
(
10
0), GET
DATE
(), 0): 05 16 20
06
10
:57AM Select CONVERT(
varchar
(
10
0), GET
DATE
(), 1): 05/16/
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 2):
06
.05.16 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 3): 16/05/
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 4): 16.05.
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 5): 16-05-
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 6): 16 05
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 7): 05 16,
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 8):
10
:57:46 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 9): 05 16 20
06
10
:57:46:827AM Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
): 05-16-
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 11):
06
/05/16 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 12):
06
0516 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 13): 16 05 20
06
10
:57:46:937 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 14):
10
:57:46:967 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 20): 20
06
-05-16
10
:57:47 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 21): 20
06
-05-16
10
:57:47.157 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 22): 05/16/
06
10
:57:47 AM Select CONVERT(
varchar
(
10
0), GET
DATE
(), 23): 20
06
-05-16 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 24):
10
:57:47 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 25): 20
06
-05-16
10
:57:47.250 Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
0): 05 16 20
06
10
:57AM Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
1): 05/16/20
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
2): 20
06
.05.16 Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
3): 16/05/20
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
4): 16.05.20
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
5): 16-05-20
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 1
06
): 16 05 20
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
7): 05 16, 20
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(),
10
8):
10
:57:49 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 1
09
): 05 16 20
06
10
:57:49:437AM Select CONVERT(
varchar
(
10
0), GET
DATE
(), 1
10
): 05-16-20
06
Select CONVERT(
varchar
(
10
0), GET
DATE
(), 111): 20
06
/05/16 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 112): 20
06
0516 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 113): 16 05 20
06
10
:57:49:513 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 114):
10
:57:49:547 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 120): 20
06
-05-16
10
:57:49 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 121): 20
06
-05-16
10
:57:49.700 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 126): 20
06
-05-16T
10
:57:49.827 Select CONVERT(
varchar
(
10
0), GET
DATE
(), 130): 18 ???? ?????? 1427
10
:57:49:907AM Select CONVERT(
varchar
(
10
0), GET
DATE
(), 131): 18/04/1427
10
:57:49:920AM
SQL Server基础之存储过程,字符串转时间函数
cas
t('1980-12-17' as
date
time
)
阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程 简单来说,存储过程就是一条或者多条sql语句的集合,可视为批处理文件,但是其作用不仅限于批处理。本篇主要介绍
变
量
的使用,存储过程和存储函数的创建,调用,查看,修改以及删除操作。 回到顶部 一:存储过...
如何将
Date
Time
转换为
VarChar
I am working on a query in Sql Server 2005 where I need to convert a value in
Date
Time
variable int
mysql
cas
t as_Mysql SQL
CAS
T()函数
(1).
CAS
T()函数的参数是
一个
表达式,它包括用AS关键字分隔的源值和目标数据类
型
。以下例子用于将文本字符串'12'转换为整
型
:SELECT
CAS
T('12' AS int)(2).返回值是整
型
值12。如果试图将
一个
代表小数的字符串转换为整
型
值,又会出现什么情况呢?SELECT
CAS
T('12.5' AS int)(3).
CAS
T()函数和CONVERT()函数都不能执行四舍五入或截断操作...
sql server
Varchar
转换为
Date
time
sql server
Varchar
转换为
Date
time
MS-SQL Server
34,576
社区成员
254,587
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章