最近写javaEE实验的输入校验的时候一直被这个东西困扰。
就是数据库中date类型的数据无法和我前端的date数据对应,报这个错“
“com.microsoft.sqlserver.jdbc.
SQLServerException: 从字符串转换日期和/或时间时,转换失败”
之后查询过发现,数据库的date在java.sql.date中,而从前端传的数据是java.util.date,其实不一样,需要格式转换。
所以在给数据库传值之前的action文件里(不一定在action里,只要在收到前端传来的值和操作数据库的环节之间就行)添加格式转换:
teacher.setBirthday(new java.sql.Date(birthday.getTime()));
问题解决。
开发人员有
时
候使用类似下面SQL将
字符串
转换
为
日期
时间
类型,乍一看,这样的SQL的写法是没有什么问题的。但是这样的SQL其实有
时
候就是一个定
时
炸弹,随
时
可能出现问题(),下面简单对这种情况进行一个简单概括。
SELECT CONVERT(DATETIME, '2020-01-13 6:46:42');
如果你将连接
数据库
的登录名的默认语言修改为Aribc,然后去执行上面SQL语句,就会遇到错误,为什么呢?
为什么上面SQL的
日期
转换
出错了呢?其实是因为登录名修改默认语言后,会话对应的date_format变化了,从mdy变成了dmy,所以上面
转换
就报错了,有
时
候不报错,但是可能
转换
成一个错
用pymssql 连接
SqlServer
数据库
后,向
数据库
插入一条包含
时间
字段的数据
时
,报错如下:
‘Conversion failed when converting date and/or time from character string.DB-Lib error message 241,处理过程:
1、直接在
数据库
里执行insert语句INSERT INTO [dbo].[Cluste
Microsoft
SQL Server Developer Edition (64-bit)
Microsoft
SQL Server Enterprise Edition (64-bit)
企业版的报错 : 查询 top(100
问题描述:
SQL
Exception
:
com
.
microsoft
.
sqlserver
.
jdbc
.
SQLServer
Exception
: 从
字符串
转换
日期
和/或
时间
时
,
转换
失败
。 Msg 241, Level 16, State 1, 从
字符串
转换
日期
和/或
时间
时
,
转换
失败
。
问题分析:
1、在SQL Server中datetime类型的值跟varchar类型的值比较,会将varchar类型的值先转为datetime类型,这样会报错。
select * from t_users where 1=1
楼主最近遇到了困扰2小
时
的问题,如下:
是数据迁移,从mysql 到
sqlserver
时
,会报’从
字符串
转换
日期
和/或
时间
时
,
转换
失败
’。网上查了很多方法 都不行。
最后发现是数据扥问题,也就是说mysql可以认0000-00-00 00:00:00的这个
时间
数据而
sqlserver
无法识别,所以会报错。因为不是合法有效的数据,只要将其改为合法数据即可
1、更改查询条件
时间
格式
select count(1) from table where field= '1' and field> '2021-04-01 00:00:00' and field< '2021-05-01 00:00:00'
#更改之后
select count(1) from table where field= '1' and field> '2021-04-01 00:00:00' and field< '2021/05/01 00:00:00'
sql server中拼接
字符串
时
,需要把datetime型转化为char型才能进行拼接。与int转char类型不同,其需要多加引号:
declare @Dtime datetime
set @Dtime = '2020-03-05 14:16:36'
select 'INSERT into table1(pointID) VALUES ('+@Dtime+');'
错误提示:从
字符串
转换
日期
和/或
时间
时
,
转换
失败
。 (241)
解决方法:
外多加个引号
declare @Dtime da
代码如下:string ts = “2012-12-19T17:00:00Z”;DateTime dt2 = DateTime.Parse(ts, null, System.Globalization.DateTimeStyles.RoundtripKind);Console.WriteLine(dt2);
您可能感兴趣的文章:sql语句中如何将datetime格式的
日期
转换
为yy-mm-dd格式将WMI中的DateTime类型
转换
成VBS
时间
的函数代码LINQ
字符串
向datetime
转换
时
失败
的处理方法Sql中将datetime
转换
成
字符串
的
web应用采用的是ssh框架,
数据库
使用的sql server2014版本。
二、问题:
客户要求,ID列的数据类型必须是uniqueidentifier,一开始实体类的ID设计成
java
.lang.String类型;映射文件中ID的增长方式是uuid.hex
private
java
.lang.String id;
public
java
.lang.String getId(){
return id;
public void setId(
java
.lang.String id){
this.id=id;
<id name="id" column="ID" ty
这个异常是由于在 SQL Server
数据库
中,你正在尝试将一个 `nvarchar` 类型的值
转换
为 `numeric` 类型
时
出现错误。这通常发生在你试图将一个
字符串
转换
为数字
时
。
解决这个问题的方法是检查你的 SQL 语句和参数,确保你正在将正确的数据类型传递给
数据库
。你需要查看你的代码,找出哪个参数或变量被传递给了 `numeric` 类型的列,但它们的实际类型是 `nvarchar`。可能需要将这些参数或变量
转换
为正确的数据类型,或者修改
数据库
表结构以接受适当的数据类型。