I guess I'm doing it this way because I only care about getting a string that matches the YYYYMMDD format. Here's the reason:
```
The convention is to use a date based sn value to simplify the task of incrementing the sn - the most popular convention being yyyymmddss where yyyy = year, mm = month and dd = day ss = a sequence number in case you update it more than once in the day! Using this date format convention the value 2005021002 indicates the last update was on the 10th February 2005 and it was the third update that day. The date format is just a convention, not a requirement, so BIND (or any other DNS software) will not validate the contents of this field.
```` -- http://www.zytrax.com/books/dns/ch8/soa.html

The reason I prefer strings is later I can do some pattern matching on it (i.e. figure out how many digits there are) and easily pad the number with more digits. Digit counting and simple padding are both made more easy with strings, so I start with those.