Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Convert character field to Time

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    Re: Convert character field to Time

    Thanks Jeff,

    I did finally get the results I wanted. Now, I'm trying to trim down the results as I posted in my new thread.

    Thanks again,
    Dave

    Comment


      #17
      Re: Convert character field to Time

      Originally posted by Mike Wilson View Post
      Dave,
      how about you add a new field to your table (tablename) as a Time field (t_field_name). Run the following script and then rename the time field after removing the character field (c_field_name).

      Code:
      dim tbl as P
      dim vcT as C 
      	
      	tbl = table.open("[COLOR="red"]tablename[/COLOR]")
      	query.filter = ""
      	query.order=""
      	query.options=""
      	tbl.query_create()
      	
      	tbl.fetch_first()
      	while .NOT. tbl.fetch_eof()
      		vcT = tbl.[COLOR="Red"]c_field_name[/COLOR]
      	tbl.change_begin()
      		tbl.[COLOR="red"]t_field_name [/COLOR]= ctot(vcT)
      	tbl.change_end(.t.)
      	tbl.fetch_next()
      	end while
      	tbl.close()

      Sorry to revive an old thread but I've run into some difficulty running the above script.

      I have several hundred thousand records that need to be converted from a character field to a short time field.

      This script works fine except it aborts when it comes across a non-std entry in the character field. It aborts and then I have to go find the culprit record, correct it, re-run etc.

      Most are entered as 02:20PM, but it bombs if it finds something like 0220PM or anything other than the std format.

      Is there anyway to have it blank out any record that the character field is not in a correct format?

      Thanks
      Last edited by Mark Williams; 05-24-2010, 07:22 AM.

      Comment


        #18
        Re: Convert character field to Time

        Code:
        dim tbl as P
        dim vcT as C 
        	
        	tbl = table.open("tablename")
        	query.filter = ""
        	query.order=""
        	query.options=""
        	tbl.query_create()
        	
        	tbl.fetch_first()
        	while .NOT. tbl.fetch_eof()
        		vcT = tbl.c_field_name
        if istime(vcT)
        	tbl.change_begin()
        		tbl.t_field_name = ctot(vcT)
        	tbl.change_end(.t.)
        else
        tbl.change_begin()
        		tbl.t_field_name.blank_put()
        	tbl.change_end(.t.)
        end if
        
        	tbl.fetch_next()
        	end while
        	tbl.close()
        There can be only one.

        Comment


          #19
          Re: Convert character field to Time

          Thanks Stan,

          One last dumb question...

          How can I get it to not update records where the source field (character field) are blank?

          Thanks

          Comment


            #20
            Re: Convert character field to Time

            Should be able to use

            if istime(vcT) .and. alltrim(vcT)>""

            in place of the suggested

            if istime(vcT)
            There can be only one.

            Comment


              #21
              Re: Convert character field to Time

              For some reason this doesn't work.

              I also tried
              if istime(vcT) .and. alltrim(vcT)<>""

              I could deal with it converting all the blank character time fields to 12:00:00:00 am if there was a way to go back into the new fields and blank all records where the value = 12:00:00:00 am

              There isn't a pre-defined operation to blank a time field.

              Is there any other way to do it?

              Thanks

              Comment


                #22
                Re: Convert character field to Time

                I'm curious why the istime() function is returning true for blank character fields. Does it seem to anyone but me that this might be an error (bug) in the IsTime() function?

                Comment


                  #23
                  Re: Convert character field to Time

                  How about:

                  if (.not. isblank("your_c_fieldname")) .and. istime(vcT)

                  Comment


                    #24
                    Re: Convert character field to Time

                    Originally posted by Tom Cone Jr View Post
                    How about:

                    if (.not. isblank("your_c_fieldname")) .and. istime(vcT)
                    Tom,
                    I am getting the same results using the above.

                    If it matters, I am using v9 even though this is the v8 forum where I dug this thread up from.

                    I can make the whole thing work if I can find a way to blank out all fields in the short time field that = 12:00:00:00 am afterwards.

                    Thanks

                    Comment


                      #25
                      Re: Convert character field to Time

                      Mark, did you include quote marks around the field name you passed to the isblank() function? I'm shooting in the dark here cause there's no data to work with.

                      I should think you could define an update operation that was filtered on the 12:00:00:00 records, and then use the null_value() function to "blank" the field values.

                      Comment


                        #26
                        Re: Convert character field to Time

                        Ok, I just created a test database for this and am getting very odd results. I created a character time field with data similar as that in our real app and a short time field to update from the character field.

                        Here are some of the results I am getting:

                        09:10a converts to 09:10:00:00 am (OK)
                        12:35p converts to 12:00:00:00 am (Wrong - a5 assumes this isn't valid time?)
                        08:23A converts to 08:23:00:00 am (OK)
                        0823A converts to 12:00:00:00 am (Not valid time format as there is no hyphen)
                        01:25P converts to 01:25:00:00 pm (OK)
                        (Blank) converts to 12:00:00:00 am

                        etc...

                        Any help appreciated...

                        Comment


                          #27
                          Re: Convert character field to Time

                          Mark

                          Try this...
                          Al Buchholz
                          Bookwood Systems, LTD
                          Weekly QReportBuilder Webinars Thursday 1 pm CST

                          Occam's Razor - KISS
                          Normalize till it hurts - De-normalize till it works.
                          Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
                          When we triage a problem it is much easier to read sample systems than to read a mind.
                          "Make it as simple as possible, but not simpler."
                          Albert Einstein

                          http://www.iadn.com/images/media/iadn_member.png

                          Comment


                            #28
                            Re: Convert character field to Time

                            Originally posted by Al Buchholz View Post
                            Mark

                            Try this...
                            Al,
                            This appears to be working fine except it is still entering 12:00:00:00 am in the short time field when the source field is blank.

                            Thanks,
                            Mark

                            Comment


                              #29
                              Re: Convert character field to Time

                              Just noticed something.

                              is

                              12:00:00:00 am

                              a legitimate time?

                              shouldn't it be pm?

                              or

                              00:00:00:00 am


                              Consider this:

                              dim myStart as Y
                              mystring = " "
                              myStart = ctot(mystring)
                              ?mystart
                              = 12:00:00 00 am

                              ?istime(mystring)
                              = .T.

                              ?cShorttime(myStart)
                              = "000000000"

                              Later -

                              Turns out 12:00:00 00 am is the null value for short time fields. check the help file topic "Null Table Field Values"

                              If this has been obvious to everyone but me I'll shut up if you promise not to laugh.

                              -- tom
                              Last edited by Tom Cone Jr; 05-25-2010, 03:32 PM.

                              Comment


                                #30
                                Re: Convert character field to Time

                                Originally posted by Mark Williams View Post
                                Al,
                                This appears to be working fine except it is still entering 12:00:00:00 am in the short time field when the source field is blank.

                                Thanks,
                                Mark
                                So take the comments off the if then and take out the istime() portion of the if.....
                                Al Buchholz
                                Bookwood Systems, LTD
                                Weekly QReportBuilder Webinars Thursday 1 pm CST

                                Occam's Razor - KISS
                                Normalize till it hurts - De-normalize till it works.
                                Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
                                When we triage a problem it is much easier to read sample systems than to read a mind.
                                "Make it as simple as possible, but not simpler."
                                Albert Einstein

                                http://www.iadn.com/images/media/iadn_member.png

                                Comment

                                Working...
                                X