Hello,
I want to extract the date part from the value returned by wx.calendarCtlr.GetDate().
How do i do that ?
I’m trying to insert date value into database but it doesn’t allow me to insert because of the current format
============ DB Table ===============
DROP TABLE IF EXISTS smscentral
.scheduledsms
;
CREATE TABLE smscentral
.scheduledsms
(
ID
int(10) unsigned NOT NULL AUTO_INCREMENT,
Date
date NOT NULL,
Time
time NOT NULL,
Number
varchar(20) NOT NULL,
Text
varchar(160) NOT NULL,
PRIMARY KEY (ID
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
···
===================================
============ CODE ===============
#Boa:Dialog:Dialog2
import wx
import wx.lib.masked.timectrl
import wx.lib.masked.textctrl
import wx.calendar
import DB
def create(parent):
return Dialog2(parent)
[wxID_DIALOG2, wxID_DIALOG2BTCLOSE, wxID_DIALOG2BTSCH,
wxID_DIALOG2CALENDARCTRL2, wxID_DIALOG2NUMBER, wxID_DIALOG2SPINBUTTON1,
wxID_DIALOG2STNUMBER, wxID_DIALOG2STSETDATE, wxID_DIALOG2STSETTIME,
wxID_DIALOG2STTEXT, wxID_DIALOG2TEXT, wxID_DIALOG2TIMECTRL1,
] = [wx.NewId() for _init_ctrls in range(12)]
class Dialog2(wx.Dialog):
def _init_coll_fgsTimer_Items(self, parent):
generated method, don’t edit
parent.AddWindow(self.timeCtrl1, 0, border=0, flag=0)
parent.AddWindow(self.spinButton1, 0, border=0, flag=0)
def _init_coll_fgsButtons_Items(self, parent):
generated method, don’t edit
parent.AddWindow(self.btSch, 0, border=10, flag=wx.TOP | wx.LEFT)
parent.AddWindow(self.btClose, 0, border=10, flag=wx.TOP | wx.LEFT)
def _init_coll_bsDateTime_Items(self, parent):
generated method, don’t edit
parent.AddWindow(self.stSetDate, 0, border=5, flag=wx.TOP)
parent.AddWindow(self.calendarCtrl2, 0, border=10, flag=wx.TOP)
parent.AddWindow(self.stSetTime, 0, border=10, flag=wx.TOP)
parent.AddSizer(self.fgsTimer, 0, border=10, flag=wx.TOP)
parent.AddSizer(self.fgsButtons, 0, border=10, flag=wx.LEFT | wx.TOP)
def _init_coll_bsList_Items(self, parent):
generated method, don’t edit
parent.AddWindow(self.stNumber, 0, border=5, flag=wx.ALL)
parent.AddWindow(self.Number, 0, border=5, flag=wx.ALL)
parent.AddWindow(self.stText, 0, border=5, flag=wx.ALL)
parent.AddWindow(self.Text, 0, border=5, flag=wx.EXPAND | wx.ALL)
def _init_coll_fgsMain_Items(self, parent):
generated method, don’t edit
parent.AddSizer(self.bsList, 0, border=0, flag=0)
parent.AddSizer(self.bsDateTime, 0, border=15, flag=wx.LEFT)
def _init_sizers(self):
generated method, don’t edit
self.fgsMain = wx.FlexGridSizer(cols=0, hgap=0, rows=1, vgap=0)
self.bsList = wx.BoxSizer(orient=wx.VERTICAL)
self.bsDateTime = wx.BoxSizer(orient=wx.VERTICAL)
self.fgsButtons = wx.FlexGridSizer(cols=0, hgap=0, rows=1, vgap=0)
self.fgsTimer = wx.FlexGridSizer(cols=0, hgap=0, rows=1, vgap=0)
self._init_coll_fgsMain_Items(self.fgsMain)
self._init_coll_bsList_Items(self.bsList)
self._init_coll_bsDateTime_Items(self.bsDateTime)
self._init_coll_fgsButtons_Items(self.fgsButtons)
self._init_coll_fgsTimer_Items(self.fgsTimer)
self.SetSizer(self.fgsMain)
def _init_ctrls(self, prnt):
generated method, don’t edit
wx.Dialog.init(self, id=wxID_DIALOG2, name=’’, parent=prnt,
pos=wx.Point(397, 445), size=wx.Size(407, 305),
style=wx.STATIC_BORDER | wx.DEFAULT_DIALOG_STYLE,
title=u’SMS Scheduler’)
self.SetClientSize(wx.Size(399, 271))
self.stNumber = wx.StaticText(id=wxID_DIALOG2STNUMBER, label=u’Number’,
name=u’stNumber’, parent=self, pos=wx.Point(5, 5),
size=wx.Size(37, 16), style=0)
self.Number = wx.TextCtrl(id=wxID_DIALOG2NUMBER, name=u’Number’,
parent=self, pos=wx.Point(5, 31), size=wx.Size(163, 21), style=0,
value=u’’)
self.stText = wx.StaticText(id=wxID_DIALOG2STTEXT, label=u’SMS Text’,
name=u’stText’, parent=self, pos=wx.Point(5, 62), size=wx.Size(45,
13), style=0)
self.Text = wx.TextCtrl(id=wxID_DIALOG2TEXT, name=u’Text’, parent=self,
pos=wx.Point(5, 85), size=wx.Size(188, 171),
style=wx.TE_LINEWRAP | wx.TE_MULTILINE, value=u’’)
self.stSetDate = wx.StaticText(id=wxID_DIALOG2STSETDATE,
label=u’Select Date’, name=u’stSetDate’, parent=self,
pos=wx.Point(213, 5), size=wx.Size(75, 13), style=0)
self.stSetTime = wx.StaticText(id=wxID_DIALOG2STSETTIME,
label=u’Select Time’, name=u’stSetTime’, parent=self,
pos=wx.Point(213, 175), size=wx.Size(54, 13), style=0)
self.calendarCtrl2 = wx.calendar.CalendarCtrl(date=wx.DateTime.Now(),
id=wxID_DIALOG2CALENDARCTRL2, name=‘calendarCtrl2’, parent=self,
pos=wx.Point(213, 28), size=wx.Size(166, 137),
style=wx.calendar.CAL_SHOW_HOLIDAYS)
self.calendarCtrl2.Bind(wx.calendar.EVT_CALENDAR_SEL_CHANGED,
self.OnCalendarCtrl2CalendarSelChanged,
id=wxID_DIALOG2CALENDARCTRL2)
self.timeCtrl1 = wx.lib.masked.timectrl.TimeCtrl(display_seconds=True,
fmt24hr=False, id=wxID_DIALOG2TIMECTRL1, name=‘timeCtrl1’,
oob_color=wx.NamedColour(‘Yellow’), parent=self, pos=wx.Point(213,
198), size=wx.Size(64, 22), style=0, useFixedWidthFont=True,
value=‘12:00:00 AM’)
self.timeCtrl1.SetInsertionPoint(0)
self.timeCtrl1.SetFormat(‘HHMM’)
self.timeCtrl1.Bind(wx.EVT_TEXT_ENTER, self.OnTimeCtrl1TextEnter,
id=wxID_DIALOG2TIMECTRL1)
self.btSch = wx.Button(id=wxID_DIALOG2BTSCH, label=u’Schedule’,
name=u’btSch’, parent=self, pos=wx.Point(233, 240),
size=wx.Size(75, 23), style=0)
self.btSch.Bind(wx.EVT_BUTTON, self.OnBtSchButton, id=wxID_DIALOG2BTSCH)
self.btClose = wx.Button(id=wxID_DIALOG2BTCLOSE, label=u’Close’,
name=u’btClose’, parent=self, pos=wx.Point(318, 240),
size=wx.Size(75, 23), style=0)
self.btClose.Bind(wx.EVT_BUTTON, self.OnBtCloseButton,
id=wxID_DIALOG2BTCLOSE)
self.spinButton1 = wx.SpinButton(id=wxID_DIALOG2SPINBUTTON1,
name=‘spinButton1’, parent=self, pos=wx.Point(277, 198),
size=wx.Size(20, 20), style=wx.SP_VERTICAL)
self.timeCtrl1.BindSpinButton(self.spinButton1)
self._init_sizers()
def init(self, parent):
self._init_ctrls(parent)
self.Dt = self.calendarCtrl2.GetDate()
self.T = self.timeCtrl1.GetValue()
def OnBtSchButton(self, event):
Num = self.Number.GetValue()
Txt = self.Text.GetValue()
DBCon = DB.Con()
strSch = “INSERT INTO scheduledsms(Date,Time,Number,Text) VALUES( str_to_date(’”+str(self.Dt)+"’,’%m%d%Y’),’"+str(self.T)+"’,’"+str(Num)+"’,’"+str(Txt)+"’)";
DBCon.RunQuery(strSch)
self.Destroy()
def OnBtCloseButton(self, event):
self.Destroy()
def OnCalendarCtrl2CalendarSelChanged(self, event):
self.Dt = self.calendarCtrl2.GetDate()
def OnTimeCtrl1TextEnter(self, event):
self.T = self.timeCtrl1.GetValue()
if name == ‘main’:
app = wx.PySimpleApp()
dlg = create(None)
try:
dlg.ShowModal()
finally:
dlg.Destroy()
app.MainLoop()
================================
–
Regards,
Tanay Shah