java中有date和datetime,mysql中也有date和datetime,这里我们来说说mysql中的date和datetime。
1 mysql中的date和datetime
11 DATETIME
‘YYYY-MM-DD HH:MM:SS’
格式检索与显示 DATETIME 类型。支持的范围是:
‘1000-01-01 00:00:00’
到
‘9999-12-31 23:59:59’。
(“支持”的含义是,尽管更早的值可能工作,但不能保证他们均可以。)
12 DATE
类型可用于需要一个日期值而不需要时间部分时。MySQL 以
‘YYYY-MM-DD’
格式检索与显示DATE值。支持的范围则是
‘1000-01-01’
到
‘9999-12-31’。
2 与java数据的交互
能看出来mysql中的date和datetime区别还是挺大的,date没有保存时间。但是java中的date(javautilDate)记录的还是挺细的,日期和时间都可以记下来,那么现在问题来了,如果想在mysql中存储日期和时间,也就是用datetime,而在数据中应该如何对应呢?
我使用hibernate测了一下,发现当把mysql数据库中设置了datetime,反向工程生成的hbmxml文件中,使用的是timestamp,如下:
<property name="Publishdate" column="publishdate" type="timestamp" not-null="false" length="10" />1
反向生成java的pojo时,生成的还是Date。
由此可见对于mysql中datetime,与java中的date,如果要使二者正确交互,中间要使用timestamp。
如果要在JAVA中直接插入MySql的datetime类型,则可以使用:
Date date = new Date();
Timestamp timeStamp = new Timestamp(dategetTime());12
再用setTimestamp()设置数据库中的“日期+时间”。
这样放入数据库的就是“yyyy-mm-dd hh:mm:ss”格式的数据。
注意,mysql中如果使用date而不是datetime是保存不下“日期+时间”的,只能保存“时间”。
1、在企业管理器中选中要修改的表格,点击鼠标右键,d出菜单点击“设计表”
2、选中要设置的字段,在默认值中绑定默认值
默认值为当前时间:getdate()
3、默认值为指定时间:'20160101',该格式各数据库版本有细微差异,示例在SQL2000环境测试:
declare @suffix varchar(1000)declare @sql varchar(2000) --这里定义了一个变量select @suffix = CONVERT(varchar(100), GETDATE(), 112)set @sql='select from test_' + @suffix + '' --需要指定动态sqlexec (@sql) --这句是执行
自己建个表,存贮周信息
看你的需要 可以只存周的开始和结束日期,也可以存从周一到周日的日期。
/
功能: 计算在某一段时间内某周几(如星期一)的所有日期
设计:OK_008
时间:2006-10
/
DECLARE @Date datetime
DECLARE @StartDate datetime
DECLARE @EndDate datetime
DECLARE @WeekDay int
DECLARE @i int
SET DATEFIRST 7 --设置每周的第一天
SET @StartDate='2006-01-01' --统计的开始日期
SET @EndDate='2006-12-31' --统计的结束日期
SET @WeekDay=1 --根据实际的@@DATEFIRST而定,一般默认是7,如 @StartDate='2006-01-01'时候, @WeekDay=3表示星期二
SET @i=DATEPART(weekday,@StartDate)
PRINT '每周的第1天设置@@DATEFIRST: '+CAST(@@DATEFIRST AS nvarchar(1))
PRINT '开始日期对应一周的第几天: '+CAST(@i AS nvarchar(1))
IF(@i<=@WeekDay AND @i<7)
SET @i=@WeekDay-@i
ELSE IF(@i<=@WeekDay AND @i=7)
SET @i=@i-@WeekDay
ELSE
SET @i=@@DATEFIRST-@i+@WeekDay
SET @Date=DATEADD(day,@i,@StartDate)
WHILE @Date<=@EndDate
BEGIN
IF(@StartDate<=@Date) PRINT CONVERT(nvarchar(10),@Date,121)
SET @Date=DATEADD(Week,1,@Date)
END
GO
/ ==============运行结果================/
/
每周的第1天设置@@DATEFIRST: 7
开始日期对应一周的第几天: 1
2006-01-01
2006-01-08
2006-01-15
2006-01-22
2006-01-29
/
--这是开始时间,末一天的话 用dateadd(day,1,@DATE)
方法和 *** 作步骤如下:
1.首先,打开数据库并创建一个新表。由于日期格式的原因,所以两个date_time和time_time字段是日期类型,见下图,然后进入下一步。
2.其次,完成以上步骤后,如果是一个简单的查询表,则会以日期格式显示,如下图所示,然后进行下一步。
3.然后,在完成上述步骤之后,将查询日期显示结果设置为日期格式,可以使用数据库函数to_char实现该格式。结果是一个字符串,如下图所示,然后是下一步。
4.然后,完成上述步骤后,在“查询编辑器”窗口中,输入如下所示的代码,然后进入下一步。
5.最后,在完成上述步骤之后,完成修改date类型字段值的 *** 作,如下图所示。这样,问题就解决了。
注意事项:
SQL是结构化查询语言的简称。SQL是一种功能完备的数据库语言,它是一组用于数据库的 *** 作命令。在使用它时,您只需要发出命令“做什么”,而“如何做”不是用户考虑的问题。
SQL数据库的数据体系结构基本上是三级结构,但是使用的术语不同于传统的关系模型术语。在SQL中,关系模式(schema)称为“基表”;内部模式称为“存储文件”;子模式(外部模式)称为“视图”;元组称为行;该属性称为列。
以上就是关于如何向mysql数据库中插入日期全部的内容,包括:如何向mysql数据库中插入日期、sql系统时间格式是怎样设定的、怎么在sql中定义一个时间变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)