Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • extract year from a variable

    Dear All


    How can we extract year, month and day from a varibale. Please find attached the example of my data set.

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str19 q1_10
    "2019-01-22T01:44:30"
    "2019-01-22T02:11:23"
    "2019-01-22T03:53:45"
    "2019-01-30T00:56:41"
    "2019-01-24T21:34:13"
    "2019-01-24T04:26:32"
    "2019-01-24T03:59:41"
    "##N/A##"            
    "##N/A##"            
    "2019-01-22T02:54:16"
    "2019-01-29T04:21:59"
    "2019-01-23T23:48:14"
    "2019-01-25T05:54:02"
    "2019-01-30T00:38:49"
    "2019-01-23T23:10:38"
    "2019-01-30T01:50:00"
    "2019-01-24T00:19:35"
    "2019-01-23T23:21:34"
    "2019-01-25T01:14:56"
    "2019-01-24T23:50:47"
    "2019-01-25T02:02:54"
    "2019-01-25T01:51:20"
    "2019-01-24T23:48:08"
    "2019-01-25T01:39:17"
    "2019-01-25T01:25:59"
    "2019-01-25T01:55:45"
    "2019-01-28T03:03:36"
    "2019-01-28T03:11:30"
    "2019-01-28T02:53:54"
    "2019-01-25T01:51:51"
    "2019-01-25T01:43:07"
    "2019-01-25T02:08:59"
    "2019-01-27T03:13:12"
    "2019-01-28T00:58:14"
    "2019-01-25T01:24:27"
    "2019-01-27T03:18:11"
    "2019-01-28T02:31:49"
    "2019-01-24T23:34:24"
    "2019-01-28T02:39:54"
    "2019-01-29T22:12:08"
    "2019-01-29T03:10:17"
    "2019-01-29T02:14:56"
    "2019-01-29T02:18:07"
    "2019-01-29T03:20:26"
    "2019-01-29T02:55:00"
    "2019-01-29T02:12:11"
    "2019-01-29T01:56:13"
    "2019-01-29T02:42:55"
    "2019-01-29T02:27:33"
    end

  • #2
    Thanks for the data example. Here is some technique:


    Code:
    . gen year = real(substr(q1_10, 1, 4)) 
    (2 missing values generated)
    
    . gen month = real(substr(q1_10, 6, 2)) 
    (2 missing values generated)
    
    . gen day = real(substr(q1_10, 9, 2)) 
    (2 missing values generated)
    
    . 
    . gen double datetime = clock(q1_10, "YMD#hms") 
    (2 missing values generated)
    
    . format %tc datetime 
    
    . 
    . l in 1/10 
    
         +---------------------------------------------------------------+
         |               q1_10   year   month   day             datetime |
         |---------------------------------------------------------------|
      1. | 2019-01-22T01:44:30   2019       1    22   22jan2019 01:44:30 |
      2. | 2019-01-22T02:11:23   2019       1    22   22jan2019 02:11:23 |
      3. | 2019-01-22T03:53:45   2019       1    22   22jan2019 03:53:45 |
      4. | 2019-01-30T00:56:41   2019       1    30   30jan2019 00:56:41 |
      5. | 2019-01-24T21:34:13   2019       1    24   24jan2019 21:34:13 |
         |---------------------------------------------------------------|
      6. | 2019-01-24T04:26:32   2019       1    24   24jan2019 04:26:32 |
      7. | 2019-01-24T03:59:41   2019       1    24   24jan2019 03:59:41 |
      8. |             ##N/A##      .       .     .                    . |
      9. |             ##N/A##      .       .     .                    . |
     10. | 2019-01-22T02:54:16   2019       1    22   22jan2019 02:54:16 |
         +---------------------------------------------------------------+
    
    
    gen dailydate = daily(substr(q1_10, 1, 10), "YMD") 
    format dailydate %td 
    
    * OR 
    gen dailydate2 = dofc(datetime) 
    gen day2 = day(dailydate2) 
    * etc. 
    
    * essential reading 
    help datetime 
    help string functions

    Comment


    • #3
      Thank you so much

      Comment

      Working...
      X