关于日期类型的问题

thinking_man 2000-06-23 04:26:00
我用Query查询SQL SERVER服务器上的数据库数据,
我想写一个SQL 语句,其中包含对时间的控制,我的时间是从Tdatetimepicker中得到,
SQLS:=‘SELECT * FROM TABLE1 ’
SQLS:=SQLS+‘WHERE TABLE1.TIME1>=’+???
请各位大侠指导一下。
...全文
216 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
meijg 2000-07-03
  • 打赏
  • 举报
回复
wingsun和halfone都是对的,这要取决于你的系统设置,在区域设置里,日期的分割符,还有一种是 .,一般都是'-'
halfone 2000-07-03
  • 打赏
  • 举报
回复
完全同意:wingsun
不过可能是FormatDateTime('MM"/"DD"/"YYYY" "HH":"NN":"SS"',Now());吧!
Wingsun 2000-07-03
  • 打赏
  • 举报
回复
Sorry.错了
SQLS:=‘SELECT * FROM TABLE1 ’"
SQLS:=SQLS+‘WHERE TABLE1.TIME1>="’+FormatDateTime('YYYY"-"MM"-"DD" "HH":"NN":"SS"',Now())+'"';
Wingsun 2000-07-03
  • 打赏
  • 举报
回复
没有那么复杂,使用FormatDateTime一切搞定。
SQLS:=‘SELECT * FROM TABLE1 ’"
SQLS:=SQLS+‘WHERE TABLE1.TIME1>=’+FormatDateTime('YYYY"-"MM"-"DD" "HH":"NN":"SS"',Now());
chenjian 2000-07-03
  • 打赏
  • 举报
回复
我给你部分原码:
TDateTime Present;
Word StartYear, StartMonth, StartDay, EndYear, EndMonth, EndDay;
String sPayOut, sStartMonth, sStartDay, sStartTime, sEndMonth, sEndDay, sEndTime;

BitBtnPrn->Enabled = True;
Present = DTPPayStart->Date;
DecodeDate(Present, StartYear, StartMonth, StartDay);
Present = DTPPayEnd->Date;
DecodeDate(Present, EndYear, EndMonth, EndDay);
if ((EndYear < StartYear)||((EndYear == StartYear)&&(EndMonth < StartMonth)) ||((EndYear == StartYear)&&(EndMonth == StartMonth)&&(EndDay < StartDay)))
ShowMessage("结束时间不能小于开始时间!请重新输入。");
else
{
if (StartMonth < 10)
sStartMonth = "0"+IntToStr(StartMonth);
else sStartMonth = IntToStr(StartMonth);
if (StartDay < 10)
sStartDay = "0"+IntToStr(StartDay);
else sStartDay = IntToStr(StartDay);
sStartTime = sStartMonth + "/" + sStartDay + "/" + IntToStr(StartYear);

if (EndMonth < 10)
sEndMonth = "0"+IntToStr(EndMonth);
else sEndMonth = IntToStr(EndMonth);
if (EndDay < 10)
sEndDay = "0"+IntToStr(EndDay);
else sEndDay = IntToStr(EndDay);
sEndTime = sEndMonth + "/" + sEndDay + "/" + IntToStr(EndYear);

sPayOut = "Select * From Table_Name where TimeFeild >= '"+sStartTime+"' and TimeFeild <= '"+sEndTime+"'"

如还有不明白请与我联系:chengjian712@sina.com
holoboy 2000-06-24
  • 打赏
  • 举报
回复
sql中还有一些时间型的函数,例如 datename,datepart等,shylsz的方法也许会出现这样的问题,sql的month是用E文表示的,datetimepicker.date返回的是1...12的数值,
可以这样,用decodedatetime()对datetimepicker.date进行分解,例子如下
var
year,month,day:word;
myday:datetime;
begin
myday := datetimepicker.date;
decodedatetime(mydate,year,month,day);
with query1 do
begin
sql.clear;
sql.add('select * from table1 where datepart(year,table1.datetime)>= year + and datepart(month,table1.datetime)>= month + and datepart(day,table1.datetime)>= day');
大致意思是这样,不过这个程序肯定通不过,因为还需要对month进行一些转换,还有对于
Time进行操作的问题,思路是这样,还有不明白的E我,给你详细清淡。



















chinacat9910 2000-06-23
  • 打赏
  • 举报
回复
query1.string:='select * from table1 where table1.time1>='"+datatimetostr(datepicker1.date)+"'"
zhouzq 2000-06-23
  • 打赏
  • 举报
回复
用RX的TDBDATEEDIT控件。
SQLS:=SELECT * FROM TABLE1 WHERE TABEL1.TIME1 >= :DATE1;
在QUERY 的OPEN 前执行
PARAMBYNAME('DATE1').ASDATETIME :=DBDATEEDT.DATE;
shylsz 2000-06-23
  • 打赏
  • 举报
回复
SQLS:=‘SELECT * FROM TABLE1 ’
SQLS:=SQLS+‘WHERE TABLE1.TIME1>=:aa’
query1.close;
query1.ParamByName('aa').asdate:=datetimepicker.date;
query1.sql.text:=sqls;
query1.open;
课程内容:本课程是《Java工程师必学系列课程》的第6部分,主要讲解Java语言中中新旧两代日期时间相关的类、日期时间相关的处理方法、历法和时间计算的常识,在课程的最后还安排了万年历实战项目本课程涉及的主要内容可以分为四部分:一、Java语言旧日期时间系统二、Java8新日期时间系统三、日期、时间、历法基础知识四、万年历项目课程说明:在开发Java程序的过程中,无论做什么类的项目,基本上都会处理与日期和时间相关的问题。既然日期时间问题的处理已经成了程序必须要掌握的技能,那我们就必须认真深入的学习日期时间的计算和处理方法。本课程将深入讲解Java语言新旧两代日期时间系统的相关知识。在讲解的过程中,不仅仅讲解如何调用各种类所提供的方法去处理相关问题,更是从原理上深入分析了这些类的设计原理,以及要如何避免在实战中踩到那些非常隐蔽的大坑。此外,除了讲解日期时间相关工具类的使用,本课程还向广大学员普及了一些必要的日期、时间和历法的相关知识。让学员能够从根本上理解日期时间算法的设计思路。同时,本课程在最后一部分,安排了非常精彩的、完整的万年历项目,通过实战的形式切实帮助学员提高解决具体问题的能力!预期效果:认真学习完本课程,学员可以掌握日期时间计算和处理的相关知识,并能提高实际的编码水平。配套福利:万年历软件的完整源码环境配置要求:学习本课程需安装JDK13或更高版本的JDK,以便程序能正确运行,建议使用IntelliJ IDEA 2019.1.2或更高版本的开发工具。因有合作协议约束,《穆哥学堂》只提供PDF版本的课件!

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧