㈠ sql 中 date 与datetime的区别
区别1:
①date类型可用于需要一个日期值而不需要时间部分时;
②datetime类型:可用于需要同时包含日期和时间信息的值。
区别2:
①date:MySQL 以 'YYYY-MM-DD' 格式检索与显示date值;
②datetime:MySQL 以 'YYYY-MM-DD HH:mm:ss'格式检索与显示 DATETIME 类型。
(1)date可以存储时间和日期扩展阅读:
SQL:
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。
不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。
所以,实际上不同数据库系统之间的SQL不能完全相互通用。
date:
(1)省略 年/月/日 显示系统日期并提示输入新的日期,不修改则可直接按回车键,要修改则直接输入新日期。
⑵当机器开始启动时,有自动处理文件(AUTOEXEC.BAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。
DateTimePicker控件:
C/S设计中的DateTimePicker控件[1],有两种操作模式:
1.下拉式日历模式(缺省)—允许用户显示一种能够用来选择日期的下拉式日历。
2.时间格式模式—允许用户在日期显示中选择一个字段(例如:月、日、年等等),按下控件右边的上下箭头来设置它的值。
可以自定义控件的下拉式日历的外观。
使用各种颜色属性,例如CalendarBackColor,CalendarForeColor,CalendarTitleBackColor,CalendarTitleForeColor和CalendarTrailingForeColor,允许创建属于您自己的颜色方案。
可以使用键盘或鼠标对控件进行浏览。下拉式日历有两个按钮使您能够滚动月份数据出入视图。
㈡ 数据库存储时间类型时,使用string和date各有什么优势
不觉得string有优势,即然是时间,那来源一定就是标准时间格式,何必再转换。今后计算,统计时还得换回来,数据还容易出错
㈢ mysql 的datetime 和date能不能直接比较大小
测试了一下,
SELECT '2009-6-1 12:00:00'<'2009-6-3'
结果为1,
是可以直接写的,不过最好转换成类型一致!
㈣ 关于日期是存储成日期类型,还是字符串类型的问题
1.关于日期转换,java内置SimpleDateFormat类,
SimpleDateFormat temp=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
temp.format(date); //将日期类型转换成字符串
temp.parse(source);//将字符串转换成日期类型
2.在我们实际开发中,通常操作数据库日期时,会用到数据库自带的日期函数,比如oracle中会用到to_date()和to_char等。
如 select count(1) from al where to_date(hiredate,'yyyy-mm-dd hh24:mi:ss') = to_date(p_date,'yyyy-mm-dd hh24:mi:ss');
注意数据库不区分大小写,所以函数中的月份用mm,分钟用mi....
祝你开心 0_o
再补充一下,如果前台传来的是"2013/02/05"这种格式的话,那可以在后台替换一下啊。
String date="2013/02/05";
date=(date==""||date==null)? "2013-01-01":date.replace("/","-");
这样的话就转换成通用格式了。然后再用这个格式去操作就可以了.....
㈤ c++ 定义一个日期类Date,该类对象存放一个日期
#include<stdio.h>
#include<iostream.h>
#include"windows.h"
classDate{
private:
intyear;
intmonth;
intday;
intIsCurrentDate(intYear,intMonth,intDay);//是不是正确的日期。
public:
Date();
Date(inty,intm,intd);
Date(constDate&other);
voidGetDate();
intGetYear();
intGetMonth();
intGetDay();
voidSetDate(inty,intm,intd);
voidAddOneDay();
};
Date::Date(){//不赋值时,默认当前日期
SYSTEMTIMEct;
GetLocalTime(&ct);//如果用GetSystemTime(&ct);那么获取的是格林尼治标准时间
year=ct.wYear;
month=ct.wMonth;
day=ct.wDay;
}
Date::Date(inty,intm,intd):year(y),month(m),day(d){
IsCurrentDate(y,m,d);
}
Date::Date(constDate&other){
year=other.year;
month=other.month;
day=other.day;
}
voidDate::GetDate(){
cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
}
intDate::GetYear(){
returnyear;
}
intDate::GetMonth(){
returnmonth;
}
intDate::GetDay(){
returnday;
}
voidDate::SetDate(inty,intm,intd){
year=y;
month=m;
day=d;
}
voidDate::AddOneDay(){
intsign=0;
if((year%4==0&&year%100!=0)||year%400==0)
{
sign=1;
}
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
if(day<31){
day=day+1;
}else{
day=1;
month=month+1;
}
break;
case4:
case6:
case9:
case11:
if(day<30){
day=day+1;
}else{
day=1;
month=month+1;
}
break;
case2:
if(sign==1)
if(day<29){
day=day+1;
}else{
day=1;
month=3;
}
else
if(day<28){
day=day+1;
}else{
day=1;
month=3;
}
break;
case12:
if(day<30){
day=day+1;
}else{
day=1;
month=1;
year=year+1;
}
break;
default:
break;
}
}
intDate::IsCurrentDate(intyear,intmonth,intday){
intsign=0,dayvalid;
if((year%4==0&&year%100!=0)||year%400==0)
{
sign=1;
}
if(month>=1&&month<=12)
{
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
dayvalid=31;
break;
case4:
case6:
case9:
case11:
dayvalid=30;
break;
case2:
if(sign==1)
dayvalid=29;
else
dayvalid=28;
break;
default:
break;
}
if(!(day>0&&day<=dayvalid))
{
cout<<"日期格式错误"<<endl;
return2;
}
}
else
{
cout<<"月份格式错误"<<endl;
return1;
}
cout<<"日期格式正确"<<endl;
return0;
}
intmain(){
Dated;
d.AddOneDay();
d.GetDate();
Datedt(2014,2,28);
dt.AddOneDay();
dt.GetDate();
return0;
}
㈥ 存储过程 向date型字段存入当前系统时间
sysdate是系统时间,它本身就是时间类型了,如果time_last_login是时间类型,那就可以直接使用sysdate。如果你的意思是要转化成字符串,那函数应该是to_char
㈦ DATE类日期
其实就是把你要修改的日期作为参数传到方法里面
然后再到方法里面去截取时间的年月日部分。
再已你需要的那种格式返回就成了。
当然传入的时间格式要正确,你要给传入的时间格式做判断。
例如,只允许xxxx年xx月xx日xx时xx分xx秒 类型的时间传入,否则返回时间类型错误
public String getDate(String setDate)
{
例如:public String year=setDate.substring(0,4);
public String month=setDate.substring(5,7);
public String day=setDate.substring(8,10);
if(setDate==xxxx年xx月xx日xx时xx分xx秒) //这个部分有麻烦,要截
//取年月日部分数字判断
//年月日部分的字符判断
return day+"日"+month+"月"+year+"年";
else
return "输入的时间格式错误!";
}
这是java的。C#也差不多。
要加天数的话就把截取的字符段转int型再加,当然还是要做判断,比如判断哪个月的天数不能超过多少,到达了就再月份上加1,天数返回到1。加月份和年份也一样的。
我是一名株洲北大青鸟的S2的学生,如果错了请见谅。
当然软件定义好的时间类里面有没有自动转的方法我就不知道了。
不过我想就算有的话sun和微软公司也是这么定义的方法吧。
有问题的话可以互相讨论下。QQ: 251455529
第三次修改。
你好像是要个子类吧。
那就要继承了。
该下前面的属性为public就行了。
不过这样做的话安全性不够高。
这样就最直接。
㈧ java如何将日期和时间同时存入数据库
sql server里面有个数据类型Datetime存放的就是日期+时间的格式,比如:
1900-1-1 16:36:44.000
如果要将1900-1-1 16:36:44存入数据库中(即上面的Datetime字段),可以通过转换生成对应的Date数据就行。
插入数据库的数据必须是java.sql.Date类型的日期,所以你可以通过类似你上面的处理将字符串转成java.sql.Date类型的日期再存入数据库就成。
下面给你一个将字符串1900-1-1 16:36:44改变成一个java.sql.Date类型的一个class。
import java.text.*;
import java.util.Locale;
public class StringToDate {
public final static java.sql.Date string2Date(String dateString)
throws java.lang.Exception {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
return dateTime;}}方法二SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
java.util.Date now = new java.util.Date();
String resultDate = sdf.format(now);