一般存入数据库中的时间格式为
yyyy-mm-ddhh:mm:ss
如果要转换为
yyyy-mm-dd
短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声明:
使用 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
数据类型)。
SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。
在表中,左侧的两列表示将
datetime
或
smalldatetime
转换为字符数据的style值。给style值加 100,可获得包括世纪数位的四位年份 (yyyy)。
不带世纪数位 (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
|
* 默认值(style0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始终返回世纪数位 (yyyy)。
** 当转换为
datetime
时输入;当转换为字符数据时输出。
*** 专门用于 XML。对于从
datetime
或
smalldatetime
到
character
数据的转换,输出格式如表中所示。对于从
float
、
money
或
smallmoney
到
character
数据的转换,输出等同于style2。对于从
real
到
character
数据的转换,输出等同于style1。
重要
默认情况下,SQL Server 根据截止年份 2049 解释两位数字的年份。即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。
当从
smalldatetime
转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从
datetime
或
smalldatetime
值进行转换时,可以通过使用适当的
char
或
varchar
数据类型长度来截断不需要的日期部分。
=========================================================================
如果只要取yyyy-mm-dd格式时间, 就可以用 convert(nvarchar(10),field,120)
120 是格式代码, nvarchar(10) 是指取出前10位字符.
语句及查询结果:
SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06
SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06
SELECT CONVERT(varchar(100), GETDATE(), 6): 16 05 06
SELECT CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
SELECT CONVERT(varchar(100), GETDATE(), 8): 10:57:46
SELECT CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
SELECT CONVERT(varchar(100), GETDATE(), 10): 05-16-06
SELECT CONVERT(varchar(100), GETDATE(), 11): 06/05/16
SELECT CONVERT(varchar(100), GETDATE(), 12): 060516
SELECT CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
SELECT CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
SELECT CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
SELECT CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
SELECT CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
SELECT CONVERT(varchar(100), GETDATE(), 24): 10:57:47
SELECT CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
SELECT CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
SELECT CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
SELECT CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
SELECT CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
SELECT CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
SELECT CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
SELECT CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
SELECT CONVERT(varchar(100), GETDATE(), 108): 10:57:49
SELECT CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
SELECT CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
SELECT CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
SELECT CONVERT(varchar(100), GETDATE(), 112): 20060516
SELECT CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
SELECT CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
SELECT CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
SELECT CONVERT(varchar(100), GETDATE(), 121): 2006
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
转载于:
https://www.cnblogs.com/xiaoleiel/p/8301027.html
一般存入数据库中的时间格式为yyyy-mm-ddhh:mm:ss如果要转换为yyyy-mm-dd短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声明:使用 CONVERT:CONVERT (data_type[(length)],expression[,style])参数expression是任何有效的 Microsoft® SQL Server™ 表达式。data_type目标系统所提供的数据类型,包括bigint和sql_vari...
开发人员有时候
使用
类似下面
SQL
将字符串
转换
为
日期
时间类型,乍一看,这样的
SQL
的写法是没有什么问题的。但是这样的
SQL
其实有时候就是一个定时炸弹,随时可能出现问题(),下面简单对这种情况
进行
一个简单概括。
SELECT
CONVERT
(DATETIME, '2020-01-13 6:46:42');
如果你将连接数据库的登录名的默认语言修改为Aribc,然后去执行上面
SQL
语句,就会遇到错误,为什么呢?
为什么上面
SQL
的
日期
转换
出错了呢?其实是因为登录名修改默认语言后,会话对应的date_format变化了,从mdy变成了dmy,所以上面
转换
就报错了,有时候不报错,但是可能
转换
成一个错
select
CONVERT
(varchar, getdate(), 120 ) 2004-09-12 11:06:08
select replace(replace(replace(
CONVERT
(varchar, getdate(), 120 ),'-',''),' ',''),':','')
(1)cast一般更容易
使用
,
convert
的优点是可以格式化
日期
和数值;
(2)
convert
一般用于
日期
和时间类型以及小数之间
转换
,而cast一般用于小数转数值和字符型;
(3)
convert
只是显示
转换
,而cast是强制
转换
。
一、cast()函数
cast()函数
使用
起来非常简单,语法为:
http://www.jb51.net/article/20363.htm(转载)
CONVERT
(data_type,expression[,style])
convert
(varchar(10),字段名,
转换
格式)
说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互
转换
的时候才用到.
语句 ...
CONVERT
() 函数可以用不同的格式显示
日期
/时间数据。
CONVERT
(data_type(length),data_to_be_
convert
ed,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_
convert
ed 含有需要
转换
的值。style 规定
日期
/时间的输...
---------------------------常用
sql
---------------------------
Select
CONVERT
(varchar(100), GETDATE(), 24): 10:57:47
Select
CONVERT
(varchar(100), GETDATE(), 108): 10:57:49
Select
CONVERT
(varchar(100), GETDATE(), 12): 060516
Select
CONVERT
(varchar(100), GET
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个C:.│
sql
server
2000.txt│ ├─第01章│ 1.9.1 设置内存选项.
sql
│ 1.9.2(2)
使用
文件及文件组.
sql
│ 1.9.2(3) 调整tempdb数据库的文件属性.
sql
│ ├─第02章│ │ 2.1
日期
概念理解
中
的一些测试.
sql
│ │ 2.2.4
CONVERT
在
日期
转换
中
的
使用
示例.
sql
│ │ 2.3.3 SET DATEFORMAT对
日期
处理的影响.
sql
│ │ 2.3.4 SET LANGUAGE对
日期
处理的影响示例.
sql
│ │ 2.4.1
日期
格式化处理.
sql
│ │ 2.4.2
日期
推算处理.
sql
│ │ 2.4.3 特殊
日期
加减函数.
sql
│ │ 2.5.1 查询指定
日期
段内过生日的人员.
sql
│ │ 2.5.2 生成
日期
列表的函数.
sql
│ │ 2.5.3 工作日处理函数(标准节假日).
sql
│ │ 2.5.3 工作日处理函数(自定义节假日).
sql
│ │ 2.5.4 计算工作时间的函数.
sql
│ │ │ └─其他│ 交叉表.
sql
│ 任意两个时间之间的星期几的次数-横.
sql
│ 任意两个时间之间的星期几的次数-纵.
sql
│ 复杂年月处理.
sql
│ 统计--交叉表+
日期
+优先.
sql
│ ├─第03章│ │ 3.2 各种字符串分拆处理函数.
sql
│ │ 3.3 各种字符串合并处理示例.
sql
│ │ 3.4.1 分段截取函数.
sql
│ │ 3.4.2 分段更新函数.
sql
│ │ 3.4.3 IP地址处理函数.
sql
│ │ 3.5.1 字符串比较函数.
sql
│ │ 3.5.2 字符串并集&交集处理示例.
sql
│ │ 3.5.3 字符串分拆并统计的处理示例.
sql
│ │ 3.5.5 字符串处理示例--列车车次查询.
sql
│ │ 3.6.2 字符串在编号查询
中
的应用示例及常见问题.
sql
│ │ 3.6.3 动态参数的存储过程示例.
sql
│ │ 3.6.4 动态他Transact-
SQL
语句处理
中
的常见问题演示.
sql
│ │ 3.7.3 text与ntext字段的复制和合并处理示例.
sql
│ │ 3.7.4 text与image字段
转换
处理示例.
sql
│ │ 3.7.5 ntext字段的REPLACE处理示例.
sql
│ │ │ └─其他│ varbinary
转换
成字符串.
sql
│ 关键字搜索.
sql
│ 分解公式.
sql
│ 字符串分拆--格式化.
sql
│ 得到一个字符串在另一个字符串
中
出现的次数.
sql
│ 数字
转换
成十六进制.
sql
│ 比较第一与第二个字符串,是否有连续的5个字符相同.
sql
│ 生成查询的模糊匹配字符串.
sql
│ 简繁
转换
.
sql
│ 统计一个表
中
某个字符出现最多的字母.
sql
│ 非法字符串处理.
sql
│ ├─第04章│ │ 4.1.5 在各种处理
中
应用排序规则的示例.
sql
│ │ 4.2.1 排序规则在拼音处理
中
的应用.
sql
│ │ 4.2.2 排序规则在全角与半角处理
中
的应用.
sql
│ │ │ └─其他│ 生成GB2312汉字表.
sql
│ 生成GBK汉字表.
sql
│ 自动获取汉字笔画.
sql
│ ├─第05章│ │ 5.1.1 SET IDENTITY_INSERT
中
的几个问题.
sql
│ │ 5.1.1 修改标识值的示例.
sql
│ │ 5.1.1 标识列与普通列互相
转换
的示例.
sql
│ │ 5.2.1 查表法按
日期
生成流水号的示例.
sql
│ │ 5.2.1 查表法生成流水号的示例.
sql
│ │ 5.2.2
使用
编号表按
日期
生成流水号的示例.
sql
│ │ 5.2.2
使用
编号表生成流水号的示例.
sql
│ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).
sql
│ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).
sql
│ │ 5.2.3 生成纯数字随机编号的示例.
sql
│ │ 5.3.2 融合了补号处理的编号生成处理示例.
sql
│ │ 5.3.3
使用
UPDATE
进行
编号重排的处理示例.
sql
│ │ 5.3.3
使用
临时表
进行
编号重排的处理示例.
sql
│ │ 5.3.3
使用
子查询
进行
编号重排的处理示例.
sql
│ │ 5.3.3 名次查询的处理示例.
sql
│ │ 5.4.1 查询已用编号分布情况的示例(临时表法).
sql
│ │ 5.4.1 查询已用编号分布情况的示例(子查询法).
sql
│ │ 5.4.2 查询缺号分布情况的示例.
sql
│ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.
sql
│ │ 5.4.4 缺勤天数统计的处理示例.
sql
│ │ │ └─其他│ -补位法.
sql
│ 以另一个表的字段做默认值.
sql
│ 以另一表的字段生成编号.
sql
│ 关联部门流水号.
sql
│ 十六进制.
sql
│ 学号.
sql
│ 开票统计--涉及到连号处理.
sql
│ 新编号查询示例(分类查询).
sql
│ 新编号查询示例.
sql
│
日期
流水号.
sql
│ 材料流水号.
sql
│ 流水号.
sql
│ 箱编号连号处理.
sql
│ 类别自动生成编号示例.
sql
│ 自已做标识列的例子.
sql
│ 触发器自动维护已用&未用编号.
sql
│ 连续编号.
sql
│ 防止重复的示例.
sql
│ 项目编号=各项目独立流水号&各年不同.
sql
│ ├─第06章│ │ 6.1.1 NULL对IN的查询的影响及解决示例.
sql
│ │ 6.1.2 各种联接的
使用
示例.
sql
│ │ 6.1.2 多表联结导致记录重复的示例.
sql
│ │ 6.1.3
使用
UNION实现库存报表的示例.
sql
│ │ 6.1.5 按指定上下限区间
进行
数据统计的示例.
sql
│ │ 6.1.6 随机出题的示例.
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例.
sql
│ │ 6.2.1 UNION ALL实现的分级汇总示例.
sql
│ │ 6.3.1 简单的交叉报表处理示例.
sql
│ │ 6.3.2 多列
转换
为行的交叉报表处理示例.
sql
│ │ 6.3.3 行值动态变化的交叉报表处理示例(
转换
多列).
sql
│ │ 6.3.3 行值动态变化的交叉报表处理示例.
sql
│ │ 6.3.4 化解字符串不能超过8000的方法.
sql
│ │ 6.3.5 特殊的交叉报表处理示例.
sql
│ │ 6.4.1 库存明细帐处理示例(包含结存数).
sql
│ │ 6.4.1 库存明细帐处理示例.
sql
│ │ 6.4.2 同期及上期数据对比处理示例.
sql
│ │ 6.4.3 动态分组处理示例.
sql
│ │ 6.4.4 排行榜处理示例.
sql
│ │ │ └─其他│ 交叉表--复杂名次.
sql
│ 交叉表-优先级处理.
sql
│ 交叉表分析.
sql
│ 分级汇总.
sql
│ 分组交叉表.
sql
│ 列转行.
sql
│ 固定行列报表.
sql
│ 复杂交叉表.
sql
│ 复杂交叉表1.
sql
│ 多栏显示.
sql
│
日期
+星期+时间.
sql
│ 格式化报表.
sql
│ 横转竖-1.
sql
│ 横转竖-字段名.
sql
│ 横转竖-生成字段名.
sql
│ 横转竖.
sql
│ 行列互换的复杂交叉表.
sql
│ 限制列数的交叉表.
sql
│ ├─第07章│ │ 7.1 splitpage.asp│ │ 7.2.1 TOP n 实现的通用分页存储过程.
sql
│ │ 7.2.2 字符串缓存实现的通用分页存储过程.
sql
│ │ 7.2.3 临时表缓存实现的通用分页存储过程.
sql
│ │ 7.2.4
使用
系统存储过程实现的通用分页存储过程.
sql
│ │ 7.3.1 实现随机分页的通用分页存储过程.
sql
│ │ 7.3.2 根据分类表实现的分页存储过程.
sql
│ │ │ └─其他│ sp_cursor.
sql
│ 基本方法.
sql
│ ├─第08章│ │ 8.1.2 树形数据分级汇总示例.
sql
│ │ 8.1.3 树形数据编号重排的通用存储过程.
sql
│ │ 8.1.3 树形数据编号重排示例.
sql
│ │ 8.1.4 实现编码规则调整处理的通用存储过程.
sql
│ │ 8.1.4 生成编码规则调整处理T-
SQL
语句的函数.
sql
│ │ 8.1.5 删除节点处理的通用存储过程.
sql
│ │ 8.1.5 移动节点处理的通用存储过程.
sql
│ │ 8.2.2 树形数据层次显示处理示例.
sql
│ │ 8.2.2 树形数据广度排序处理示例.
sql
│ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).
sql
│ │ 8.2.2 树形数据深度排序处理示例(递归法).
sql
│ │ 8.2.3 查找指定节点的所有子节点的示例函数.
sql
│ │ 8.2.4 查找指定节点的所有父节点的示例函数.
sql
│ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.
sql
│ │ 8.2.5 校验表
中
数据是否有循环编码的通用存储过程.
sql
│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).
sql
│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.
sql
│ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.
sql
│ │ 8.2.8 逐级汇总示例(循环逐级累计法).
sql
│ │ 8.2.8 逐级汇总示例(用户定义函数法).
sql
│ │ 8.3.1 产品配件清单查询示例.
sql
│ │ 8.3.2 最短乘车路线查询示例.
sql
│ │ │ └─其他│ xml菜单.
sql
│ 宝塔形数据的处理-1.
sql
│ 宝塔形数据的处理.
sql
│ 树形数据生成xml.
sql
│ ├─第09章│ │ 9.1.3 访问外部数据源方法总结.
sql
│ │ 9.5.1 二进制文件存取示例(T-
SQL
).
sql
│ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs│ │ a.txt│ │ Schema.ini│ │ │ └─其他│ bcp-数据导入导出(全).
sql
│ bcp-数据导入导出-二进制文件.
sql
│ bcp-数据导出为文件.
sql
│ bcp表数据存为XML.
sql
│
SQL
Server
到Oracle连接服务器的实现.
sql
│
SQL
Server
到
SQL
BASE连接服务器的实现.
sql
│
SQL
Server
到SYBASE连接服务器的实现.
sql
│
sql
导出my
sql
.
sql
│ textcopy实现文件存取.
sql
│ Vb程序实现文件存取.
sql
│ 导入文本文件时如何指定字段类型.
sql
│ 导出northwind
中
Employees的图像.
sql
│ 将某个目录上的Excel表,导入到数据库
中
.
sql
│ 数据导入导出基本方法.
sql
│ 用ASP上传&下载文件.
sql
SQL
SERVER
中
强制类型
转换
cast和
convert
的区别
在
SQL
SERVER
中
,cast和
convert
函数都可用于类型
转换
,其功能是相同的,
只是语法不同.
cast一般更容易
使用
,
convert
的优点是可以格式化
日期
和数值.
select CAST('123' as int) -- 123
select
CONVERT
(int, '123') -- 123
select CAST(123.4 as int) -- 123
select
CONVERT
(int, 123.4) -- 123
select CAST('123.4' as int)
select CONVER
convert
(varchar(10),字段名,
转换
格式)
CONVERT
为
日期
转换
函数,一般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互
转换
的时候才用到;函数的3个参数:第1个参数为
转换
后的大;第2个为
转换
日期
的字段或函数;第3个为
转换
的格式。
具体例子:
SELECT
CONVERT
(varcha...
convert
不同类型举例
Select
CONVERT
(varchar(100), GETDATE(), 0) : 01 26 2021 11:32PM
Select
CONVERT
(varchar(100), GETDATE(), 1) : 01/26/21
Select
CONVERT
(varchar(100), GETDATE(), 2) : 21.01.26
Select
CONVERT
(varchar(1