当前位置:首页 » 编程语言 » sql传时间格式还是字符串好
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql传时间格式还是字符串好

发布时间: 2022-05-25 14:50:40

1. sql 时间日期比较 问题~大侠们帮帮忙吧~

时间段比较,不用转换成字符型。
应该都转换成同一种时间来比较,也就是把两边的日期都再次用同一个函数转换一下,再比较试试看,sql里面日期是有好几种不同格式的。

2. sql的表中有一列是时间,格式是2011-12-01 12:21:23是字符串形式的,怎么按照这种格式排序啊

可以转成日期排序
order by convert(datetime, 字符串日期字段, 120) asc(或者desc)
但是,要求你的字段一定要符合你所说的这样的格式,否则转日期会有错误。

3. SQL查询时间格式问题

SQL的时间格式是:YYYY-MM-DD HH:NN:SS.sss

其sss是毫秒,由于计算机内部时钟晶振的问题,SQL时间最小单位为3毫秒。


一般SQL时间格式处理:大都采取转换格式至datetime格式

例如显示时常用到的:

1、将2015转换为当年的第一天:

selectcast('2015'+'-1-1'asdatetime)

输出结果为:2015-01-01 00:00:00.000


2、将2015-02转换为当年的第一天:

selectcast('2015-02'+'-1'asdatetime)

输出结果为:2015-02-01 00:00:00.000


其实以上可以总结为将具有一定格式的字符串转换为日期类型,只要将年月日补全,后面的时间会默认为0时0分0秒0毫秒

4. sql数据库中的时间类型

满意答案。9级2010-11-29使用nvarchar对于前期的实现比较容易,但性能及后期使用及后期需求开发比较困难
如按时间排序,数据库类型校验,根据时间段查询,根据时间的分组统计等等方面造成的影响比较大
追问:
如果用datetime
我的MyEclipse用Hibernate转换时是timestamp类型的
在用模糊查询查时间时有点纠结啊
老是报不能转换的错误
回答:
用hibernate啊
那你在配置文件注入类型不用时间戳
改成这个试试java.util.Date
补充:
hibernate项目好几年没做过了
原来在数据库时间建模和操纵时习惯用java.sql.Timestamp与数据库中DateTime对应,但业务流通层,模型里还是用java.util.Date
因为这些时间直接的转换都是一样的方便,而且这样做逻辑理解上比较直观
记忆中是没有出现过错误,Timestamp在现在使用数据源时经常使用
追问:
知道用date类型的哇
但是hibernate自动生成的就是timestamp类型
不改配置文件
就用timestamp怎么做啊?总不能每次生成就改一次配置文件吧.....
追问:
还有我做的是模糊查询
在form里面时间又是string类型的
转换有点麻烦
回答:
你在createSQLQuery方法后面在使用
addScalar方法传入你datetime的实体对应名和hibernate类型试一下吧
补充:
这个的确比较麻烦,你可以写个公共转换方法进行转换
就是字符串根据你的时间格式进行取出时间long
然后转换就可以了
大概这样子
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat();

5. 使用SQL语句向表中插入字符型和日期型数据应注意什么问题

插入时可以直接用字符串格式就可以了
如insert into table1(date1) values('2012/12/13');

insert into table1(date1) select '2012/12/13';

6. SQL日期类型和字符串类型哪个检索快

这个取决于将来,数据量大了以后,你怎么建立索引的问题。
因为 一旦用了函数什么的, 索引就用不上了, 就要做 基于函数的索引了。

至于 想按月和按天查询。
其实很简单, 就是 MONTH( CreateTime ) = 查询的月 AND DAY ( CreateTime ) = 查询的天
不必去 Convert.

7. Sql字符串与时间比较问题

oracle比较字符串是根据ascii码来的,第一个字母的ascii大小比较如果相等再比较下一个,类推。
字符串和数字进行操作是会报异常的,因为类型不一样不能进行比较。
oracle在执行sql的时候有些时候会自动转换,比如:
select
*
from
chan_customer
cc
where
cc.customer_id
=
'1';
即使customer_id是数字型的也可以查出来,但是oracle有区分字符和数字
就是通过加不加单引号来区分。

8. sql语句的问题

select
top
10
*
from
A
order
by
id
desc
得到最后十条纪录
至于第二个问题首先得知道你添加日期字符串时是用什么格式的,另外字符串是可以比较的,
select
*
from
A
where
记录日期between
'20100101'
and
'20100108'

9. sql中格式化字符串或时间,遇到多少,写多少,持

--求开始时间和结束时间相差的天数
DECLARE @result int
DECLARE @StartDayStartTime DATETIME
DECLARE @EndDayEndTime DATETIME
set @result=DATEDIFF (d,CONVERT(Datetime,@StartDay),CONVERT(Datetime,@EndDay))
--将2012-07-12 15:56:53 格式化为20120712 ,这种需求大多是因为每日数据量更新过大,所以为每天创建一张表,在实现跨多天查询的时候,你懂得。
--执行sql,并返回,最后求和,@sql务必要声明为nvarchar类型
declare @sql nvarchar(500)
declare @sm decimal(18,2) --开始里程
declare @em decimal(18,2)--结束里程
declare @sum decimal(18,2)--当天时间段内的里程
declare @temp decimal(18,2)--里程变量
set @sql='SELECT top 1 @temp=Convert(decimal(18,2),'+@GpsPath+'.Mileage) FROM '+@GpsPath+' WHERE GpsTime<='''+CONVERT(varchar(100),@E, 21)+''' AND TerminalNo=''02200051'' and '+@GpsPath+'.Mileage>0 ORDER BY GpsTime desc'
exec sp_executesql @sql,N'@temp decimal(18,2) output',@em out print @em
set @sql='SELECT top 1 @temp=Convert(decimal(18,2),'+@GpsPath+'.Mileage) FROM '+@GpsPath+' WHERE GpsTime>='''+CONVERT(varchar(100),@S, 21)+''' AND TerminalNo=''02200051'' and '+@GpsPath+'.Mileage>0 ORDER BY GpsTime asc'
exec sp_executesql @sql,N'@temp decimal(18,2) output',@sm out print @sm
set @sum=Convert(decimal(18,2),@em)-Convert(decimal(18,2),@sm)

10. 为什么很多项目数据库日期都存为字符串格式DATE不是更好吗

字符串格式方便操作,对日期进行显示、修改,并且可以进行统一化的管理,用DATE也行,但灵活性不强,所以很多项目数据库日期都存为字符串格式。望采纳。