SQL
Server
中
文版的默认的日期字段
datetime
格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 整理了一下
SQL
Server
里面可能经常会用到的日期格式
转
换方法: 举例如下: select
CONVERT
(
varchar
, getdate(), 120 ) 2004-09-12 11:06:08 select replace(replace(replace(
CONVERT
(
varchar
, getdate(), 120 ),’-‘,”),’ ‘,”),’:’,”) 20040912110608 select
CONVERT
(varc
如:cast('2005-05-01' as
datetime
)
CONVERT
( data_type [ ( length ) ] , expression [ , style ] )
如:
convert
(dateti...
日期数据格式的处理,两个示例:
CONVERT
(
varchar
(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()
函数
或数据表里的字段*/
CONVERT
(
varchar
(10), 时间一, 23) 结果:2007-02-01 /*
varchar
(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
(data_type,expression[,style]) 说明: 此样式一般在时间类型(
datetime
,small
datetime
)与字符串类型(nchar,n
varchar
,char,
varchar
) 相互
转
换的时候才用到. 例子: SELECT
CONVERT
(
varchar
(30),getdate(),101) now 结果为: now ————————————— |09/15/2001 Style数字在
转
换时间时的含义如下: 代码如下: Style(2位表示年份) | Style(4位表示年份) | 输入输出格 式 0 | 100 | mon dd yyy
sql
中
执行
varchar
数据赋值到
datetime
时报这个错:
从
varchar
数据类型到
datetime
数据类型的
转
换产生一个超出范围的值
这个
varchar
格式是没错的,是因为
datetime
这个数据类型有时间数值的范围限定,当超出时间范围时就抛出这个错误。
如果类型是“
datetime
” 数据类型:
最大是9999年12 月31日
最小是1753年1月1日
如果类型是s
bug记录,写
sql
的时候用到了
convert
将
varchar
转
换为
datetime
类型,使用
convert
(
datetime
,字段),最后报错“从
varchar
数据类型到
datetime
数据类型的
转
换产生一个超出该范围的值”
经排查,where后面的条件查询出来并无任何数据,一条数据都没有,但是他就是报这个错,
具体他为啥一条数据都没有还进行了
convert
转
换,这个不得而知,网上也没搜到具体的资料来解释。
解决办法,在where后面再加一个条件, isdate(字段) =1 ,这个条件采用isda
产生这个错误的原因是在使用
convert
函数
将给定的日期字符串
转
换为日期类型的时候,因为
datetime
这个数据类型有时间数值的范围限定,当超出时间范围时就抛出这个错误。
如果类型是【
datetime
】数据类型:最大是9999年12 月31日,最小是1753年1月1日。
如果类型是【small
datetime
】数据类型:最大值是2079年6月6日,最小值是1900年1月1日。
更多...
假设从某程序
中
传输Time数据给数据库db的存储过程proc_Name,存储过程执行插表操作,将数据@time插入表Table
中
作为Time字段(类型也为
datetime
)的值。
用到的日期格式
转
换方法 :select
CONVERT
(
varchar
, getdate(), 120 )
转
成 2016-08-16 12:34:56 格式
USE [db]
SET ANSI
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), GETDATE(), 23): 2006-05-16
select
CONVERT
(
varchar
(12) , getdat
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 CONV...
抱歉,我可以回答这个问题。在
SQL
Server
中
,可以使用
CONVERT
或 CAST
函数
将
VARCHAR
列
转
换为
DATETIME
列。例如,可以使用以下语句将名为 mydate 的
VARCHAR
列
转
换为
DATETIME
列:
ALTER TABLE mytable
ALTER COLUMN mydate
DATETIME
如果需要将
VARCHAR
列
中
的日期和时间格式
转
换为
DATETIME
格式,可以使用以下语句:
SELECT
CONVERT
(
DATETIME
, mydate, 120)
FROM mytable
其
中
,120 表示
DATETIME
格式为 yyyy-mm-dd hh:mi:ss。