关于插入数据库时间格式的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于插入数据库时间格式的问题相关的知识,希望对你有一定的参考价值。

利用SqlMap拼装Sql语句
private Date registerTime=null;
public Date getRegisterTime()
return registerTime;

public void setRegisterTime(Date registerTime)
this.registerTime = registerTime;


在XML中:
insert into ..... values ....
<isNotEmpty property="registerTime">
,#registerTime#
</isNotEmpty>
.....

具体set的时候:
XXX dto = new XXX();
dto.setRegisterTime(new Date());

本来插入的数据库的时间格式应该是yyyy-MM-dd HH:mm:ss的
现在时间时间格式为:04 8 2011 2:23PM

这个要怎么改呢?
晕死,发错地方了。。。55555555555
应该发到Java那里的,怎么发到这里啦~~~~

参考技术A 04 8 2011 2:23PM是数据库自动获取当前时间的格式,不用管它,当你需要用到这个时间的时候,从数据库取出来后可以自行转换,比如转换成yyyy-MM-dd HH:mm:ss格式的,没必要在此类问题上浪费时间.追问

问题是在数据库中记录该数据的字段是Varchar型的

用Sql语句来进行转换:
select convert(datetime,registertime) from XXX
会报错Msg 241, Level 16, State 1, Line 1
从字符串向 datetime 转换时失败。

追答

数据库中是VARCHAR类型,那你获取时间的时候为什么要获取一个date类型?
public Date getRegisterTime() ?为什么要获取一个date类型的数据?直接返回string不是更好吗?

追问

因为本来是DateTime型的,做数据库的那个人不知道怎么了写了Varchar型的,在页面显示的时候变成yyyy-MM-dd的类型,所以我这里写了Date型的。。。。是为了页面显示的时候方便

追答

页面显示的时候用varchar更方便吧.

追问

本地测试的时候是中文环境,服务器环境是英文环境,所以在页面显示的时候有不同时间格式。。所以希望是Date型数据方便在页面显示的切换不同的格式。。。

追答

说的是哦,不过我会一种笨方法,先把string转换成datatime,然后在转换成需要的类型.

追问

最后修改了数据库类型。。谢谢大家

本回答被提问者采纳
参考技术B 看看你电脑现在的时间格式是否对,在控制面板--区域和语言选项中设置。
如果时间格式正确,那么在出库的时候转换你的日期格式到20 或 120(mssql)
参考技术C 定义时间格式:
DateTime dt = new DateTime("yyyy-MM-dd HH:mm:ss");
参考技术D dto.setRegisterTime(Convert.toDateTime(new Date().tostring("yyyy-MM-dd HH:mm:ss")));

不知道你这是什么东西。。没见过。。。

关于数据库更新/插入速率限制的一些查询(基于 SQL 或基于 NoSQL)

【中文标题】关于数据库更新/插入速率限制的一些查询(基于 SQL 或基于 NoSQL)【英文标题】:some queries regarding updates/inserts rate limits for a database(SQL-based or NoSQL based) 【发布时间】:2012-08-30 21:28:39 【问题描述】:

在一个应用程序中,我需要更新大量记录/将大量记录几乎同时插入到数据库中。

是否有任何此类插入/更新限制会成为我的应用程序的瓶颈?我可以做些什么来最大化插入/更新率。

另外,关于更新,同一条记录不会被更新——一张表中的许多记录(可以通过键明确识别)会被更新——这是否意味着更新率可以显着提高?

我的上述问题适用于关系数据库和 NoSQL 数据库。

我现在正在考虑使用像 SQL Server/MySQL 这样的关系数据库——但是在这个阶段我也愿意考虑像 Mongo DB/Dynamo DB 这样的 noSQL 数据库——我最终选择的 db 取决于哪个数据库提供更高的插入/更新限制。

【问题讨论】:

当然,我没有使用过 NoSQL 风格的数据库,但如果您选择“传统”RDBMS 的唯一考虑因素是“速度”,那可能是错误的标准。据我了解,NoSQL 通常应该处理一组不同的问题,通常(尤其是?)非结构化数据。 @X-Zero 我基本上是在创建一个并行处理框架——主要任务是在并行任务完成/抛出错误/启动时更新/插入记录——因此主要我的考虑是同时更新/删除——记住你的观点,我什至可以将数据库的其余部分(用于并行处理框架)保存在单独的数据库/数据库类型中——但我确实需要最大可能的插入率/updates 用于通知任务开始/更新/完成... 取决于您的管理方式,您需要的不是速度,而是恢复/ACID 合规性的能力(NoSQL 风格的数据库往往会遇到问题)。所有主要的现代 RDBMS 都可以有多个并发用户。 【参考方案1】:

一般注意事项

最大 R/W 容量很大程度上取决于硬件(HDD 与 SSD)和节点数量。此外,我相信,由于不强制执行 ACID 和一致性,因此为写入操作扩展 NoSQL 会更容易。

对于问题的 DynamoDB 部分

DynamoDB 是一种托管服务。您保留给定的 R/W 容量(所谓的“单位”),Amazon 会为您扩展您的数据库。但是,仍然有几点需要考虑:

读取的最大保留吞吐量为 10,000 写入的最大保留吞吐量为 10,000

基本上,您每秒每次一致读取或写入以及每个不可分割的 kB 消耗 1 个单位。 (嗯,实际上,它甚至更棘手)。

但是,为了扩展,您的表被分成分区。保留的吞吐量也是如此。所以,为了达到最大可能的吞吐量,您要求的密钥需要尽可能均匀地分布。

这些是数据库方面的考虑。

客户端,还需要考虑多个因素:

TCP/HTTP 延迟 一次打开​​的最大套接字数

您可以使用 batch_get_item 和/或 batch_write_items 进行分组以减少延迟影响。

例如,我从来没有能够从我的办公室计算机上达到预置的 1000 写入,因此,您最好使用多个实例/服务器来发出您的数据库请求。

TL;DR (DynamoDB)

您保留吞吐量,Amazon 可扩展以提供它 还有一些与内部实现相关的问题 需要优化延迟 需要仔细并行化

我不是其他数据库类型的专家,所以我只能猜测客户端的考虑会以某种方式相同,对于 MySQL 来说可能更少,因为它使用二进制协议。此外,您可能还必须管理数据库。

【讨论】:

每秒 10,000 次读取/写入是表或表中分区的最大速率吗?如果是用于分区,那么我可以通过编程方式创建/删除分区吗?谢谢... 这个限制是针对每个表的。如果您请求亚马逊,您可能会获得更高的限制。您对分区完全没有控制权。你甚至不知道你有多少。根据我的测试,我知道最小值为 2,因此吞吐量为 1000。

以上是关于关于插入数据库时间格式的问题的主要内容,如果未能解决你的问题,请参考以下文章

SQL插入时间格式问题

关于Excel分析图插入到论文的问题

关于JAVA中字符串转换成日期型的问题

如何在 Informix 中转换插入日期时间的格式?

Netezza 的格式?错误信息是数据已损坏

日期以时间格式合并